2017-07-20 3 views
1

Hallo In meiner App habe ich einfache progressDialog. Ich verwende einige einfache Code Farben um es zu verwalten, aber es ist ein Problem für api niedriger als 21Ändern ProgressDialog Farbe (untere API) Android

Normalerweise sollte es sieht aus wie

enter image description here

aber für niedrigere api es

enter image description here sieht

Es gibt eine Möglichkeit, wie es aussieht wie das erste Bild?

Mein Code für 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; 
    } 

und xml für Farben verwalten:

<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> 

Antwort

0

Mit Android O, ProgressDialog nun offiziell als veraltet. Eine Alternative ist der vorgeschlagene Ansatz

Diese Klasse wurde in der API-Ebene O veraltet. Verwenden Sie in einer Aktivität einen Fortschrittsanzeiger wie ProgressBar, anstatt diesen modalen Dialog zu verwenden.

können Sie verwenden

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

</style> 

für unter API

+0

leider :(nicht funktionieren –

+0

gerade nur diese benutzen. – DKV

+0

wenn ich, dass es wird nicht aussehen wie auf dem ersten Bild sein :) –

0

diesen Code Versuchen IndeterminateDrawable und setColorFilter bekommen.

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 es wird nichts ändern. –