studio programacion móviles desarrollo curso aplicaciones android progressdialog android-styles

android - programacion - ¿Por qué el fondo de ProgressDialog no se establece en transparente?



manual de programacion android pdf (4)

Quiero establecer el fondo en el transparente, por lo que he establecido el siguiente código en

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>

Y he utilizado el Progressdialog como el siguiente código en el JAVA file y en el fragment .

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

Pero obtengo el progreso como en la siguiente imagen, y no tiene un fondo transparente.

¿Por qué el fondo no cambia a lo transparente?


En mi caso, solo defino en color.xml las variables

Para el estilo de luz: <color name="accent_material_light">#000000</color>

Para el estilo oscuro: <color name="accent_material_dark">#000000</color>

Estos cambios afectan a todo el sistema.


Prueba esto

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

EDITAR:

Intenta agregar esto al diseño xml

<item name="android:backgroundDimEnabled">true</item> <item name="android:background">@android:color/transparent</item>


Puedes usar este código, funciona bien en dispositivos> = 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();


crear MyTheme personalizado en 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>

Y también agregue este CustomAlertDialogStyle en 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>

Y establece ProgressDialog como:

pd = new ProgressDialog(getActivity(),R.style.MyTheme); pd.setCancelable(false); pd.setProgressStyle(android.R.style.Widget_ProgressBar_Small); pd.show();