Eliminar fondo negro en el diálogo personalizado
Quiero quitar el fondo negro en el diálogo personalizado como se muestra en la imagen. Estoy seguro que el fondo negro era del diálogo, no del fondo de la aplicación.
;
- Android CollapsingToolbarLayout Título de fondo
- Android: el texto de la barra de herramientas aparece como negro en vez de blanco
- Android ProgressBar estilo como vista de progreso en SwipeRefreshLayout
- Explicación avanzada de las propiedades de diseño de Android?
- Layout_width y layout_height no se está aplicando a edittext desde el tema
Código de AlertDialog
public class MyAlertDialog extends AlertDialog { public MyAlertDialog(Context context) { super(context); } public MyAlertDialog(Context context, int theme) { super(context, theme); } }
Código de actividad
public void showMyDialogOK(Context context, String s, DialogInterface.OnClickListener OkListener) { MyAlertDialog myDialog = new MyAlertDialog(context, R.style.MyDialog2); myDialog.setTitle(null); myDialog.setMessage(s); myDialog.setButton(DialogInterface.BUTTON_POSITIVE ,"Ok", OkListener); myDialog.show(); }
Estilos
<?xml version="1.0" encoding="utf-8"?> <resources> <style name="MyTheme" parent="@android:style/Theme.NoTitleBar.Fullscreen"> <item name="android:alertDialogStyle">@style/AlertDialog</item> </style> <style name="MyTheme2" parent="@android:style/Theme.Black"> <item name="android:alertDialogStyle">@style/AlertDialog</item> </style> <style name="AlertDialog"> <item name="android:fullDark">@null</item> <item name="android:fullBright">@null</item> <item name="android:topDark">@drawable/popup_top_dark</item> <item name="android:topBright">@null</item> <item name="android:centerBright">@null</item> <item name="android:centerDark">@drawable/popup_center_dark</item> <item name="android:centerMedium">@null</item> <item name="android:bottomDark">@null</item> <item name="android:bottomBright">@null</item> <item name="android:bottomMedium">@drawable/popup_bottom_medium</item> </style> <style name="MyDialog2" parent="@android:Theme.Dialog"> <item name="android:windowBackground">@null</item> <item name="android:buttonStyle">@style/CustomButton</item> </style> <style name="CustomButton" parent="@android:style/Widget.Button"> <item name="android:background">@drawable/button_stateful</item> </style> </resources>
Recursos de imágenes
Popup_center_dark.9.png
Popup_bottom_medium.9.png
Popup_top_dark.9.png
- Programáticamente set android: windowIsTranslucent
- Crear un botón en 3D en forma de android
- No se puede eliminar la barra de título en Actividad
- Cómo heredar de un estilo especificado de una versión de api diferente
- ¿Cómo puedo cambiar el color del textView android.R.layout.simple_spinner_dropdown_item?
- Cómo Estilo ActionBar, ficha fondo en la pestaña seleccionada
- Cómo cambiar el color de fondo del título de ActionBar?
- Cambiar el color de texto de la barra de estado cuando primaryDark es blanco
public MyAlertDialog(Context context, int theme) extends AlertDialog { super(context, theme); getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT)); }
Sonehow getWindow().setBackgroundDrawable()
no funcionó para mí con AlertDialog
. Encontré una solución más fácil con Dialog . Aquí está mi código –
final Dialog dialog = new Dialog(this); dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT)); dialog.setContentView(R.layout.popup_window); dialog.show();
Después de probar decenas de otras soluciones para este problema, lo que terminó trabajando para mí es:
<style name="translucentDialog" parent="android:Theme.Holo.Dialog"> <item name="android:windowBackground">@android:color/transparent</item> </style>
Y luego establecer mi diálogo para utilizar este tema.
Prueba esto:
myDialog.getWindow().clearFlags(LayoutParams.FLAG_DIM_BEHIND);
Puede crear un diseño xml como el siguiente y establecer ese diseño en el diálogo (dialog.xml) :
<?xml version="1.0" encoding="utf-8"?> <ScrollView android:id="@+id/ScrollView01" android:layout_width="fill_parent" android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android" style="@style/white_background_bl_aatharv"> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="wrap_content" android:scrollbars="vertical" android:scrollbarAlwaysDrawVerticalTrack="true" android:id="@+id/instructions_view"> <TextView android:id="@+id/TextView01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="#FFFFFF" android:text="text here " /> </LinearLayout> </ScrollView>
Aquí está el código para establecer el diseño en el cuadro de diálogo de alerta:
AlertDialog alert = cndtnsbuilder.create(); alert.setView(LayoutInflater.from( currentactivity.this).inflate( R.layout.dialog, null)); alert.show();
El método siguiente funcionó para mí:
getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
// estilo de código en style.xml:
<style name="translucentDialog" parent="android:Theme.Holo.Dialog"> <item name="android:windowBackground">@android:color/transparent</item> </style>
// en la actividad: establece el estilo al diálogo:
Dialog dialogconf = new Dialog(TreeAct.this, R.style.translucentDialog); dialogconf.getWindow().requestFeature(Window.FEATURE_NO_TITLE); dialogconf.setContentView(R.layout.dialog_layout);
Simplemente cambie el diálogo padre.
Con el backround negro
<style name="MyDialog2" parent="@android:Theme.Dialog">
Sin fondo negro
<style name="MyDialog2" parent="@android:style/Theme.DeviceDefault.Light.Dialog">
Quité el fondo negro de mi diálogo de encargo por el código después de alertDialog.show ():
try { ViewGroup viewGroup1 = (ViewGroup) dialogView.getParent(); if (viewGroup1 != null) { viewGroup1.setBackgroundResource(android.R.color.transparent); ViewGroup viewGroup2 = (ViewGroup) viewGroup1.getParent(); if (viewGroup2 != null) { viewGroup2.setBackgroundResource(android.R.color.transparent); } } } catch (Exception e) { }
Para quitar el color de fondo, en la disposición, usted apenas necesita fijar el fondo a @null
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@null">
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
- Cómo implementar la elevación Material-design para Pre-lollipop
- Agregar o quitar las entradas de idioma en el menú "Configuración" -> "Seleccionar configuración regional" en el teléfono Android