Pourquoi L'arrière-plan de ProgressDialog ne définit pas le transparent?

Je veux mettre le fond sur le transparent, donc j'ai défini le code suivant dans

styles.xml
<style name="dialog" parent="@android:style/Theme.Dialog">  
            <item name="android:windowFrame">@null</item>  
            <item name="android:windowIsFloating">true</item>  
            <item name="android:windowContentOverlay">@null</item>  
            <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>  
            <item name="android:windowSoftInputMode">stateUnspecified|adjustPan</item>  
            <item name="android:windowBackground">@android:color/transparent</item>  
            <item name="android:windowNoTitle">true</item> 
        </style> 

Et j'ai utiliser le Progressdialog comme le code suivant dans JAVA file et en fragment.

Activity activity = getActivity() ;
mProgressDialog = new ProgressDialog(activity,R.style.dialog) ;
mProgressDialog.setCancelable(false) ;
mProgressDialog.show() ;

Mais je reçois les progrès comme l'image suivante, et il n'a pas de fond transparent.

entrez la description de l'image ici

Pourquoi l'arrière-plan ne change pas en transparent ?

22
demandé sur Martin 2014-02-22 20:49:16

4 réponses

Créer un MyTheme personnalisé dans values\styles.xml

<style name="MyTheme" parent="android:Theme.Holo.Dialog">
    <item name="android:alertDialogStyle">@style/CustomAlertDialogStyle</item>
    <item name="android:windowBackground">@android:color/transparent</item>
    <item name="android:textColorPrimary">#FFFFFF</item>
     <item name="android:backgroundDimEnabled">false</item>
    <item name="android:textColor">#FFFFFF</item>
    <item name="android:textStyle">normal</item>
    <item name="android:textSize">12sp</item>
</style>

Et également ajouter cette CustomAlertDialogStyle dans values\styles.xml

 <style name="CustomAlertDialogStyle">
<item name="android:bottomBright">@android:color/transparent</item>
<item name="android:bottomDark">@android:color/transparent</item>
<item name="android:bottomMedium">@android:color/transparent</item>
<item name="android:centerBright">@android:color/transparent</item>
<item name="android:centerDark">@android:color/transparent</item>
<item name="android:centerMedium">@android:color/transparent</item>
<item name="android:fullBright">@android:color/transparent</item>
<item name="android:fullDark">@android:color/transparent</item>
<item name="android:topBright">@android:color/transparent</item>
<item name="android:topDark">@android:color/transparent</item>
</style>

Et définir ProgressDialog comme:

 pd = new ProgressDialog(getActivity(),R.style.MyTheme);
 pd.setCancelable(false);
 pd.setProgressStyle(android.R.style.Widget_ProgressBar_Small);
 pd.show();
64
répondu M D 2017-01-25 06:55:19

Vous pouvez utiliser ce code, fonctionne bien dans les périphériques > = 19 (Kitkat)

progress = ProgressDialog.show(Splash.this, null, null, true);
            progress.setContentView(R.layout.elemento_progress_splash);
            progress.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));

            //progress.show();

entrez la description de l'image ici

12
répondu David Hackro 2016-08-11 14:20:22

Essayez ceci

mProgressDialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));

Modifier:

Essayez d'ajouter ceci à la mise en page xml

        <item name="android:backgroundDimEnabled">true</item>
        <item name="android:background">@android:color/transparent</item>
5
répondu AndyFaizan 2014-02-22 17:07:11

Dans mon cas, je viens de définir à couleur.xml les variables

Pour le style léger: <color name="accent_material_light">#000000</color>

Pour le style sombre: <color name="accent_material_dark">#000000</color>

Ces changements affectent l'ensemble du système

0
répondu user1513535 2017-07-11 17:03:43