Ayer lo comentó Pablo en la oficina y no puedo estar más de acuerdo:
Cada día que pasa, estoy más convencido de estar programando CSS en lugar de android.
Programar la interfaz de usuario en Android tiene un cierto parecido a programar páginas webs. Ya de por sí, en una aplicación Android, tenemos la vista separada del resto de la lógica, si usamos estilos en nuestros diseños, podremos además:
-Reutilizar código: ¿Que es mejor? ¿Tener para cada elemento atributos que definan su estilo, atributos que posiblemente se repitan en elementos similares? ¿o crear un estilo que unifique todos esos atributos de forma que podamos reutilizarlos cada vez que queramos?
-Tener un diseño homogéneo: ¿Os ha pasado de tener una aplicación en la que se tienen diferentes tamaños de letras para elementos similares? Seguramente en nuestra aplicación tengamos TextViews, EditTexts o Buttons y queremos que todos tengan la misma forma.
Usar estilos en Android es tan simple como:
-Crear un fichero .xml dentro de la carpeta values de nuestra aplicación. El nombre del fichero puede ser cualquiera, pero por claridad, podríamos llamarlo “style.xml”
-Dentro del fichero style.xml añadimos los diferentes bloques de estilos, muy parecido a lo que nos podemos encontrar en un fichero .css
<resources> <!-- Text Styles --> <style name="GreenHeader"> <item name="android:textColor">#c1f554</item> <item name="android:typeface">normal</item> <item name="android:textSize">20dp</item> <item name="android:gravity">center</item> </style> <style name="WhiteSubHeader"> <item name="android:textColor">#fafcf9</item> <item name="android:typeface">normal</item> <item name="android:textSize">18dp</item> <item name="android:gravity">center</item> <item name="android:textStyle">bold</item> </style> <style name="NormalRowText"> <item name="android:textColor">#000000</item> <item name="android:typeface">normal</item> <item name="android:textSize">16dp</item> </style> </resources> |
Por otro lado, aplicaremos el estilo en el elemento que queramos.
<TextView android:id="@+id/any_id" style="@style/NormalRowText" android:layout_width="wrap_content" android:layout_centerVertical="true" android:layout_height="wrap_content" android:text="AnyString" /> |
De esta forma nos ahorramos muchas líneas de código.

Totalmente de acuerdo, aunque otra cosa es tener “estilo” y buen gusto a la hora de aplicarlo…
Un saludo Esteban
En un vistazo me habéis resuelto mas dudas que en los tres meses que llevo del curso de desarrollo de aplicaciones móviles de la UNED. Gracias por la ayuda y la motivación de ver que en Aragón hay gente emprendedora.
Gracias a ti por leernos. Y sobretodo por compartir tus experiencias!!!!
aqui va mi pregunta: si quiero modificar el estilo de las opciones de un spinner o un combo , como podria hacerlo, me refiero un combo con un listado desplegable.. como puedo hacer mediante estilos que cambien cada uno de las opciones?? toda ayuda es poca.
Gracias por tu blog!! está genial y nos ayuda mucho!!
Buenas David.
Disculpa que hayamos tardado tanto en responderte.
Nuestros spinners son los que vienen por defecto en Android, no nos planteamos cambiarlos de estilo, pero ahí va un pequeño tutorial de cómo se podría hacer
http://www.mokasocial.com/2011/03/easily-create-a-default-custom-styled-spinner-android/
Quizás indagando un poco puedas descubrir cómo cambiar el estilo de las diferentes opciones del selector. ¡Ya nos contarás!
Un saludo
Currently it seems like Drupal is the top blogging
platform out there right now. (from what I’ve read) Is that what you’re using
on your blog?
como aplico el style=”@style/NormalRowText” desde mi codigo java para que un imageview creado dinamicamente se muestre en pantalla con las propiedades del style del xml