2017-07-20 2 views
1

Bonjour Dans mon application, j'ai simple progrèsDialog. J'utilise un code simple pour gérer les couleurs de celui-ci, mais il y a un problème pour api inférieur à 21.Modifier ProgressDialog couleur (API inférieure) Android

Normalement, il devrait ressembler à

enter image description here

mais pour api bas, il semble

enter image description here

Il y a un moyen de faire ressembler la première image?

Mon code pour ProgressDialog

@Override 
    public Dialog onCreateDialog(int dialogId) { 
switch (dialogId) { 
      case PLEASE_WAIT_DIALOG: 
       final ProgressDialog dialog = new ProgressDialog(this,R.style.AppCompatAlertDialogStyle); 
       dialog.setTitle(getResources().getString(R.string.dialogWysylka)); 
       dialog.setMessage(getResources().getString(R.string.dialogWysylkaDol)); 
       dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); 
       dialog.setCancelable(false); 
       return dialog; 
    } 

et xml pour gérer les couleurs:

<style name="AppCompatAlertDialogStyle" parent="Theme.AppCompat.Light.Dialog.Alert"> 
    <item name="colorAccent">@color/white</item> 
    <item name="android:textColorPrimary">@color/white</item> 
    <item name="android:textColor">@color/white</item> 
    <item name="android:background">@color/brownmuseum</item> 
</style> 

Répondre

0

Avec Android O, ProgressDialog est maintenant officiellement désapprouvée. Une approche alternative est suggérée

Cette classe était obsolète au niveau de l'API O. Utilisez un indicateur de progression tel que ProgressBar inline dans une activité plutôt que d'utiliser cette boîte de dialogue modale.

Vous pouvez utiliser

<style name="MyDialogTheme" parent="Theme.AppCompat.Light.Dialog"> 
    <item name="android:windowBackground">@android:color/transparent</item> 

</style> 

pour API ci-dessous

+0

malheureusement ne fonctionne pas –

+0

:(il suffit d'utiliser celui-ci ne. – DKV

+0

si j'utilise que ce ne sera pas ressemble à première image :) –

0

Essayez ce code se IndeterminateDrawable et setColorFilter.

final ProgressDialog progress = new ProgressDialog(this); 
progress.setMessage(getString(R.string.progress_message)); 
progress.setIndeterminate(true); 
progress.setCancelable(false); 
//if lower API 21 
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) { 
    Drawable drawable = new ProgressBar(this).getIndeterminateDrawable().mutate(); 
    drawable.setColorFilter(ContextCompat.getColor(this, R.color.white), 
      PorterDuff.Mode.SRC_IN); 
    progress.setIndeterminateDrawable(drawable); 
} 

progress.show(); 
+0

hmm cela ne changera rien. –