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();