studio personalizado ejemplo edittext dialogo custom cuadro con android android-layout dialog styles alertdialog

android - ejemplo - Atributos de estilo del AlertDialog personalizado



input dialog android (2)

Estoy intentando diseñar mi AlertDialog y he podido cambiar la mayoría a través de estilos y declaraciones XML ... pero todavía hay algunos problemas:

  1. ¿Cómo cambio el área alrededor de la barra de título de negro a mi color personalizado?
  2. ¿Cómo cambio el fondo externo a transparente (la parte externa que es azul a la que se aplica la sombra)?
  3. ¿Cómo cambio los botones para que no se superpongan al borde negro alrededor del mensaje de alerta?

aquí está la función que tengo en mi RootActivity (mis actividades extienden esta)

public static void showNoConnectionDialog(Context ctx1) { final Context ctx = ctx1; LayoutInflater factory = LayoutInflater.from(ctx); AlertDialog.Builder builder = new AlertDialog.Builder(new ContextThemeWrapper(ctx, R.style.SetdartDialog)); builder.setView(factory.inflate(R.layout.alert_dialog, null)) .setIcon(R.drawable.icon) .setCancelable(true) .setMessage(R.string.check_wireless_settings) .setTitle(R.string.no_connection) .setPositiveButton(R.string.myes, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { ctx.startActivity(new Intent(Settings.ACTION_WIRELESS_SETTINGS)); } }) .setNegativeButton(R.string.mno, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { return; } }) .setOnCancelListener(new DialogInterface.OnCancelListener() { public void onCancel(DialogInterface dialog) { return; } }) .show(); }

aquí un fragmento de styles.xml

<?xml version="1.0" encoding="utf-8"?> <resources> <style name="Theme.WhiteBackground" parent="android:Theme"> <item name="android:windowBackground">@null</item> <item name="android:background">@android:color/white</item> <!-- Dialog attributes <item name="alertDialogStyle">@style/AlertDialog</item> --> </style> <style name="SetdartDialog"> <item name="android:background">@color/sd_blue</item> <!-- MUST HAVE with white bg--> <!--<item name="android:windowBackground">@color/sd_blue</item> --> <!--<item name="android:windowBackground">@color/transparent</item> needed with white bg ? --> <item name="android:windowFrame">@color/transparent</item><!-- not sure what this changes--> <item name="android:textColor">@android:color/black</item> <item name="android:windowNoTitle">true</item> <item name="android:textSize">10sp</item> <item name="android:windowIsFloating">true</item> <item name="android:windowContentOverlay">@color/transparent</item> <item name="android:windowTitleStyle">@style/setwindowTitleStyle</item> <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item> <item name="android:windowSoftInputMode">stateUnspecified|adjustPan</item> <item name="android:backgroundDimEnabled">true</item> <item name="android:gravity">center_vertical|center_horizontal</item> <!--<item name="android:colorBackgroundCacheHint">@android:color/white</item>--> </style> <style name="setwindowTitleStyle"> <item name="android:textColor">@android:color/white</item> <item name="android:background">@color/sd_blue</item> </style> </resources>

También R.layout.alert_dialog

<?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/screen" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" > <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical"> </LinearLayout> </ScrollView>



Crea tu diseño personalizado con todos estos atributos que has mencionado. Utilice Dialog lugar de AlertDialog , infle el diseño que ha creado, use el objeto Dialog para establecer el diseño inflado. Si no se lo ha presentado para inflar el servicio, investigue un poco. Después de que esté despejado al inflar, recuerde que todos los componentes del cuadro de diálogo al que accede con el objeto View que ha creado con el inflado. El resto (como click listeners) queda por hacer de la manera habitual. Aclamaciones. Espero que ayude.