ventana studio personalizado full emergente dialogo custom cuadro android dialog popup overlay

studio - input dialog android



Cómo crear un diálogo/ventana emergente completamente personalizado en Android(cambiar el color de la superposición y el diseño de la ventana de diálogo) (2)

Esto funcionó muy bien para mí, pero falta cómo cerrar el diálogo. Si tiene un botón en su diseño personalizado para cerrarlo, aquí es cómo agregar el oyente y cerrar la ventana de diálogo.

final Dialog d = new Dialog(this,R.style.CustomDialogTheme); d.setContentView(R.layout.custom_dialog); d.show(); Button close_btn = (Button) d.findViewById(R.id.close_btn); close_btn.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { d.dismiss(); } });

Me gustaría volver a personalizar completamente el componente de diálogo predeterminado en Android. Específicamente me gustaría hacer esto:

  • Cambie el fondo de superposición semitransparente del negro predeterminado a un blanco semitransparente.

  • Cambie la ventana de Diálogo eliminando el borde del marco de ventana predeterminado y reemplazándolo con un diseño definido en XML (solo será un gráfico sin bordes con botones flotantes. No hay un marco real).

He visto tutoriales sobre cómo crear un diseño personalizado para dentro del cuadro de diálogo (por ejemplo, http://www.helloandroid.com/tutorials/how-display-custom-dialog-your-android-application ), pero no he visto nada con respecto a cambiar el color de la superposición y / o personalizar completamente la ventana de diálogo que aparece y convertirla más en una superposición sin "ventana".


Resolví este problema y creé mi propia superposición emergente personalizada con un fondo de superposición semitransparente de color personalizado siguiendo los siguientes pasos:

1 - Cree un nuevo archivo xml en su carpeta res / values ​​/ y asígnele el nombre styles.xml

2 - Aquí es donde definirás las propiedades de tu diálogo. Así es como se ve el mío. Si desea reemplazar la superposición negra semitransparente predeterminada que se muestra en la pantalla, debe establecer windowIsFloating en falso y modificar el fondo de su diseño para que tenga el color que desee. Aquí está mi archivo a continuación que he usado:

<?xml version="1.0" encoding="utf-8"?> <resources> <style name="CustomDialogTheme" parent="@android:style/Theme.Dialog"> <item name="android:windowBackground">@color/transparent_white</item> <item name="android:windowIsFloating">false</item> <item name="android:windowNoTitle">true</item> </style> </resources>

3 - De vuelta en su código java, al crear el objeto de diálogo, use el constructor que pasa tanto el contexto como el tema. P.ej. myDialog = new Dialog(this, R.style.CustomDialogTheme); (CustomDialogTheme es el atributo de nombre que especifiqué en el styles.xml del paso 2)

4 - Simplemente configure la vista de contenido de los objetos de diálogo en el diseño que desee para que se vea su diálogo. P.ej. myDialog.setContentView(R.layout.my_custom_overlay); Si desea que su diálogo aparezca en el centro de la pantalla, configure el android:layout_gravity su elemento raíz android:layout_gravity to center