Android: Cómo deshacerse de la frontera extraña alrededor del diálogo de progreso
He hecho mi estilo de encargo para el diálogo del progreso, sin embargo tiene bordes extraños alrededor de él.
- ImageView dentro de RelativeLayout tiene relleno superior e inferior
- Cómo alinear el texto verticalmente en el centro de android
- RelativeLayout zorder lollipop
- Comentar en el archivo de diseño de Android
- ¿Cómo puedo utilizar EditText en lugar de TextView y abrir la fechaPicker en un solo clic?
Aquí está el tema:
<style name="AppTheme.Dialog" parent="Theme.AppCompat.Light.Dialog"> <item name="colorAccent">@android:color/white</item> <item name="android:textColorPrimary">@android:color/white</item> <item name="android:background">@color/colorPrimaryDark</item> <item name="android:popupBackground">@null</item> </style>
¿Alguna idea de por qué hay un fondo tan extraño?
- OnItemClickListener de spinner
- Desarrollar en Android 4.0, será compatible con los dispositivos de 2,3 y todos los comprimidos?
- Todos los iconos de ActionMode Bar no se muestran en Android?
- Android ListView con desplazamiento rápido y el índice de la sección alfabética
- Cómo configurar la transparencia de una imagen de fondo Android xml file
- Animación en la barra de notificaciones Vista personalizada
- Android Phonegap y Fragmentos
- Cómo capturar y guardar una imagen con cámara personalizada en Android?
Para eliminar el borde de color o blanco alrededor del diálogo de progreso, el diálogo utiliza un tema que define una ventana transparente.
<style name="MyDialogTheme" parent="Theme.AppCompat.Light.Dialog"> <item name="android:windowBackground">@android:color/transparent</item> </style>
Al crear el diálogo utilice este tema:
new ProgressDialog(MyActivity.this, R.style.MyDialogTheme);
Por favor añadir:
your_progress_dialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent);
A su java.
¡Espero que esto ayude!
Está relacionado con esta pregunta . Pero en contrario al diálogo de alerta no hay soporte AppCompat a ProgressDialog. No logré resolver el problema, es posible usar el THEME_HOLO_LIGHT
ProgressDialog dialog= new ProgressDialog(this,ProgressDialog.THEME_HOLO_LIGHT);
Pero pierde todos los beneficios de AppCompat (como acento de color).
Crear dos estilos
1) Nivel API menor que igual 19
<style name="AppAlertTheme19" parent="Theme.AppCompat.Light.Dialog"> <item name="colorAccent">@color/btngreen</item> <item name="android:textColorPrimary">@color/transparent</item> <item name="android:background">@color/transparent</item> <item name="android:windowBackground">@color/transparent</item> <item name="android:popupBackground">@null</item> </style>
2) Nivel API superior a 19
<style name="AppAlertTheme" parent="Theme.AppCompat.Light.Dialog"> <item name="colorAccent">@color/btngreen</item> <item name="android:textColorPrimary">@color/transparent</item> <item name="android:background">@color/white</item> <item name="android:windowBackground">@color/transparent</item> <item name="android:popupBackground">@null</item> </style>
3) y init vista de progreso como este
public class ProgressDialogCustom extends ProgressDialog { public ProgressDialogCustom(Context context) { super(context, getStyle()); setMessage("Please Wait ..."); setCancelable(false); } private static int getStyle() { if (Build.VERSION.SDK_INT > Build.VERSION_CODES.KITKAT) { return R.style.AppAlertTheme; } else { return R.style.AppAlertTheme19; } } }
Puedo llegar tarde a contestar esta pregunta, pero como estaba enfrentando el mismo problema, lo resolví de la siguiente manera:
Creé 2 estilos uno para arriba el lollipop y uno para debajo de él.
Nivel API superior a 19
<style name="AppAlertTheme" parent="Theme.AppCompat.Light.Dialog"> <item name="colorAccent">@color/white</item> <item name="android:textColorPrimary">@color/transparent</item> <item name="android:background">@color/blue</item> <item name="android:windowBackground">@color/transparent</item> <item name="android:popupBackground">@null</item> </style>
Nivel API inferior a 19
<style name="AppAlertTheme_api19" parent="android:Theme.Holo.Dialog"> <item name="android:alertDialogStyle">@style/CustomAlertDialogStyle</item> <item name="android:windowBackground">@color/nlue</item> <item name="android:background">@android:color/transparent</item> <item name="android:backgroundDimEnabled">false</item> <item name="android:textColor">@color/white</item> </style> <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>
Luego usó este estilo de la siguiente manera:
public int getProgressDailogStyle(){ if (Build.VERSION.SDK_INT > Build.VERSION_CODES.KITKAT) { return R.style.AppAlertTheme; } else { return R.style.AppAlertTheme_api19; } }
y finalmente
progressDialog = new ProgressDialog(context, getProgressDailogStyle());
Espero que esto te ayude
- Desplazamiento horizontal en la vista de cuadrícula de Android
- ¿Por qué la aplicación no es compatible con Tablets después de la actualización