Diálogo de personalización extendiendo Dialog o AlertDialog
Quiero crear un cuadro de Dialog
personalizado. Porque no me gusta su estilo, quiero tener rectángulo redondeado en lugar de esquinas agudas. Sé cómo implementarlo por tema en AndroidManifest.xml
, por ejemplo, uso:
android:theme="@style/Theme.CustomDialog"
Y Theme.CustomDialog.xml
:
- Cambiar el color del cursor editext en API 12
- Android ActionBar Personalizar Buscar Ver
- Cambiar color de texto y selector en TabWidget
- ¿Cómo crear un ListView cerrado (circular)?
- Cambiar el color de texto de ListView al hacer clic
<style name="Theme.CustomDialog" parent="android:style/Theme.Dialog"> <item name="android:windowBackground">@drawable/filled_box</item> <item name="android:windowNoTitle">true</item> filled_box.xml <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="#ffffffff"/> <stroke android:width="3dp" color="#ffff8080"/> <corners android:radius="30dp" /> <padding android:left="10dp" android:top="10dp" android:right="10dp" android:bottom="10dp" /> </shape>
¿Cómo puedo implementar un resultado similar extendiendo el Dialog
o AlertDialog
?
- Bordes rectangulares para Custom SeekBar
- ¿Cómo implementar la vista de pila personalizada en android?
- Cambio de fondo y color de texto de AppCompat Light DarkActionBar Theme en android
- ¿Cómo puedo cambiar el código predeterminado de la pantalla de inicio de Android y reemplazar mi código fuente de aplicación de la pantalla de inicio personalizada?
- Personalizar la lista de sugerencias de AutoCompletar vista de texto
- Android: evita el truncamiento de texto en las sugerencias de SearchView?
- ScrollBar en un listView ... personalizándolo.
- Android: Crear un botón de alternancia con imagen y sin texto
En el constructor de su clase que se extiende Dialog llamada super(context, R.style.CustomDialog);
Lo he hecho muchas veces para crear diálogos personalizados con temas específicos.
Sin embargo, si el tema es la única cosa sobre el Dialog dialog = new Dialog(context, R.style.CustomDialog);
diálogo que desea cambiar, puede intentar instanciar una instancia de la clase de diálogo y pasar la ID de tema como Dialog dialog = new Dialog(context, R.style.CustomDialog);
Un ejemplo de ampliación del diálogo:
public class MyDialog extends Dialog { public MyDialog(final Context context) { // Set your theme here super(context, R.style.MyDialogTheme); // This is the layout XML file that describes your Dialog layout this.setContentView(R.layout.myDialogLayout); } }
El resto del código que agregará a esta clase va a ser prácticamente igual que lo que escribiría en una clase de actividad.