PDA

Ver la Versión Completa : Personalizar AlertDialog


desdroid
07/05/13, 08:16:07
Hola, quiero cambiar tanto el color de fondo como el color de texto del título del AlertDialog y que sean blanco y azul, respectivamente. ¿Alguién puede explicarme cómo se hace? He mirado algunos tutoriales, pero no me aclaro.

Dild0
07/05/13, 08:53:34
Puedes crearte un estilo o tema y agregarselo.


ContextThemeWrapper ctw = new ContextThemeWrapper( this, R.style.miestilo);
AlertDialog.Builder Dialog = new AlertDialog.Builder(ctw);



Otra opcion es hacerte un custom dialog con tu propio layout.

desdroid
07/05/13, 12:21:17
Puedes crearte un estilo o tema y agregarselo.


ContextThemeWrapper ctw = new ContextThemeWrapper( this, R.style.miestilo);
AlertDialog.Builder Dialog = new AlertDialog.Builder(ctw);



Otra opcion es hacerte un custom dialog con tu propio layout.
Sí, pero en R.style.miestilo, ¿cómo indico que el color de fondo y el color de texto que quiero cambiar es el del título?

Dild0
07/05/13, 13:33:01
Sí, pero en R.style.miestilo, ¿cómo indico que el color de fondo y el color de texto que quiero cambiar es el del título?

Yo he de decirte q me vuelvo un poco loco creando temas, desconozco muchos de los valores pero prueba algo asi

<style name="miestilo" parent="android:Theme.Dialog">
<item name="android:windowBackground">@drawable/blue</item>
<item name="android:colorForeground">#f0f0</item>
</style>



yo por ejemplo tengo este que para lo que yo queria me quedaba como queria, se podran tocar miles de aspectos pero los desconozco... lo que te tocara hacer es buscar el tema del que heredas ver su código e ir toqueteando los tipos en el tuyo propio para ver que va modificando.

En mi caso heredo de Sherlock porq utilizo la librería.


<style name="miestilo" parent="@style/Theme.Sherlock.Light.Dialog">

<item name="android:colorForeground">#f0f0</item>
<item name="android:windowTitleStyle">@style/DialogWindowTitle.Styled</item>
<item name="android:textColorPrimary">@color/colortextos</item>
</style>

<style name="DialogWindowTitle.Styled" parent="@style/DialogWindowTitle.Sherlock.Light">
<item name="android:textAppearance">@style/TextAppearance.Styled.DialogWindowTitle</item>
</style>

<style name="TextAppearance.Styled.DialogWindowTitle" parent="@style/TextAppearance.Sherlock.Light.DialogWindowTitle">
<item name="android:textColor">@color/colortextos</item>
</style>


donde color textos es un color que tengo definido

rinxe
07/05/13, 13:38:03
Para crear un style puedes hecharle un ojo a la documentacion Android, te ayudara bastante:
http://developer.android.com/guide/topics/resources/style-resource.html
http://developer.android.com/guide/topics/ui/themes.html

Por otro lado puedes crear un layout personalizado y logo a traves de codigo indicas que ese xml es un AlertDialog (personalmente suelo usar esta opcion, te dejo un ejemplo de como creo un Dialog):
final Dialog dialogo = new Dialog(activity);
dialogo.requestWindowFeature(Window.FEATURE_NO_TIT LE);
dialogo.setCanceledOnTouchOutside(false);
dialogo.setCancelable(true);

LayoutInflater inflater = getLayoutInflater();
View view = inflater.inflate(R.layout.nombreperfil, null);

final EditText edit = (EditText) view.findViewById(R.id.edit);
(Declaras todos los miembros del xml y sus funciones...)
.......................................
dialogo.setContentView(view);
dialogo.show();

PD: vayaa, se me a adelantado Dild0 ;-)

desdroid
08/05/13, 18:42:59
Gracias por la ayuda. Probaré lo que me habéis dicho y si no me sale, os digo.