Pregunta

Quiero hacer una Dialog personalizado. Debido a que no me gusta su estilo, yo quiero tener rectángulo redondeado en lugar de esquinas afiladas. Yo sé cómo ponerlo en práctica por el tema en AndroidManifest.xml, por ejemplo, yo uso:

android:theme="@style/Theme.CustomDialog"

Y Theme.CustomDialog.xml:

<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 al extender el Dialog o AlertDialog?

¿Fue útil?

Solución

En el constructor de la clase que se extiende super(context, R.style.CustomDialog); llamada de diálogo que he hecho esto muchas veces para crear cuadros de diálogo personalizados con temas específicos.

Sin embargo, si el tema es la única cosa sobre el diálogo que desea cambiar, puede probar simplemente una instancia de una instancia de la clase de diálogo y pasarlo el ID de tema como Dialog dialog = new Dialog(context, R.style.CustomDialog);

Un ejemplo de extender 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 se le agrega a esta clase va a ser casi exactamente como lo que se escriba en una tipo de actividad.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top