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" />
|
No hay comentarios:
Publicar un comentario