martes, 28 de enero de 2014

Estilos y Temas

En Android todos los elementos gráficos son susceptibles de modificar su aspecto en mayor o menor medida. En lugar de realizar una configuración individualizada de todos los elementos se pueden emplear los temas y/o estilos para realizarlo de forma más ordenada. Se trata de un concepto muy similar a las hojas de estilo CSS, donde también se emplea el concepto de herencia para definir unos estilos en función de estilos base o padre.

Un tema es una configuración de aspecto general de la app, de manera que todos los estilos definidos para el tema se aplican de forma automática a todos los elementos relacionados de la app. De cualquier forma cada Activity puede emplear un tema distinto. Habitualmente se emplean temas propios de las plataformas Android como base para definir nuevos temas o estilos.

Un recurso de estilo define la configuración visual para un elemento o grupo de éstos, pero necesita ser referenciado por los componentes visuales concretos para que se aplique el estilo en cuestión.

Lo mínimo necesario

Un fichero /res/values/styles.xml:
<resources
xmlns:android="http://schemas.android.com/apk/res/android">

<!-- Tema de la aplicación -->
<style name="AppTheme" parent="android:Theme.Holo.Light">
<!-- Configuración global del tema, no imprescindible -->  
<item name="android:windowBackground">@color/fondo</item>    
</style>
   
<style name="Titulo" parent="AppTheme">
    <item name="android:textColor">@color/titulo</item>
    <item name="android:textSize">17sp</item>
</style>
</resources>


Un fichero /res/values/colors.xml
<resources
xmlns:android="http://schemas.android.com/apk/res/android">

<color name="fondo">#F2F2F2</color>
   <color name=“titulo">#857960</color>
</resources>


Aplicar el tema a la aplicación a través del Manifest:
<application
        android:allowBackup="true"
        android:icon=“@drawable/ic_launcher"
        android:label="@string/app_titulo"    
  android:theme="@style/StyledIndicators" >


Aplicar el estilo a los elementos necesarios:
<TextView
android:id="@+id/tvTitulo"
style="@style/Detalle.Text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text=“@string/main_title" />

Referencias

http://developer.android.com/guide/topics/resources/style-resource.html

No hay comentarios:

Publicar un comentario