Android

Android


12.4.Tema Light

Página 14 de 25

12.   APLICANDO TEMAS

Un estilo es algún tipo de formato o propiedad que se aplica a un objeto de tipo View, como por ejemplo color del texto, color de fondo, etc. Un tema se aplica a una actividad completa y permite controlar la apariencia de la pantalla en el fichero AndroidManifest.xml. Los estilos pueden ser definidos por el usuario, pero también existen estilos y temas disponibles en cada versión de Android. Se encuentran en el directorio del android-SDK:

android-SDK/platforms/android-version/data/res/values/

Los estilos están definidos en el fichero styles.xml y los temas en themes.xml. En este capítulo aplicaremos algunos de los temas disponibles.

12.1.   Tema por defecto

Hasta ahora hemos venido aplicando el tema por defecto, modificando nosotros a mano el layout. Usaremos el ejemplo de la figura 12.1 para ilustrar el uso de los distintos temas disponibles.

Para ello, primero copiaremos una imagen einstein300.jpg, que tiene 300 pixeles de ancho en la carpeta drawable-hdpi. El fichero main.xml lo modificamos como sigue:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout

xmlns:android="http://schemas.android.com/apk/res/android"

       android:orientation="vertical"

       android:layout_width="fill_parent"

       android:layout_height="fill_parent"

       >

<TextView

       android:textSize="20sp"

       android:layout_width="wrap_content"

       android:layout_height="wrap_content"

       android:text="Albert Einstein (1879-1955)"

       android:layout_gravity="center"

       />

<ImageView android:layout_height="wrap_content"

       android:layout_width="wrap_content"

       android:layout_gravity="center"

       android:src="@drawable/einstein300"

       android:id="@+id/imageView1"></ImageView>

<TextView

       android:textSize="20sp"

       android:layout_width="wrap_content"

       android:layout_height="wrap_content"

       android:text="Tema por defecto"

       android:layout_gravity="center"

       android:id="@+id/texto"

       />

</LinearLayout>

Figura 12.1. Tema por defecto.

El siguiente fichero Temas.java  es el creado por defecto:

import android.app.Activity;

import android.os.Bundle;

public class Temas extends Activity {

       /** Called when the activity is first created. */

       @Override

       public void onCreate(Bundle savedInstanceState) {

          super.onCreate(savedInstanceState);

          setContentView(R.layout.main);

       }

  }

12.2.   Tema NoTitleBar

Ahora editamos el fichero AndroidManifest.xml y aplicamos un tema a nuestra alicación:

<?xml version="1.0" encoding="utf-8"?>

<manifest

xmlns:android="http://schemas.android.com/apk/res/android"

      package="es.ugr.amaro"

      android:versionCode="1"

      android:versionName="1.0">

      <uses-sdk android:minSdkVersion="7" />

      <application android:icon="@drawable/icon"

         android:label="@string/app_name"

         android:theme="@android:style/Theme.NoTitleBar" >

         <activity android:name=".Temas"

                   android:label="@string/app_name">

             <intent-filter>

                <action

                 android:name="android.intent.action.MAIN" />

                <category

          android:name="android.intent.category.LAUNCHER" />

              </intent-filter>

         </activity>

      </application>

</manifest>

El tema se aplica en la línea:

android:theme="@android:style/Theme.NoTitleBar"

y modificamos nuestra actividad añadiendo un texto.

public class Temas extends Activity {

        /** Called when the activity is first created. */

        @Override

        public void onCreate(Bundle savedInstanceState) {

            super.onCreate(savedInstanceState);

            setContentView(R.layout.main);

            TextView texto=(TextView) findViewById(R.id.texto);

            texto.setText("Aplicando el Tema NoTitleBar");

        }

}

Vemos que este tema hace desaparecer la barra con el título de la actividad.

Figura 12.2. Tema NoTitleBar.

12.3.   Tema Dialog

Para aplicar el tema Dialog volvemos a modificar el fichero AndroidManifest.xml, sustituyendo NoTitleBar por Dialog, de la siguiente forma:

android:theme="@android:style/Theme.Dialog"

y modificamos la última línea del fichero Tema.java por

texto.setText("Aplicando el Tema NoTitleBar");

El resultado se ve en la figura 12.3. La actividad aparece en una ventana flotante sin ocupar toda la pantalla, como un cuadro de diálogo o de notificaciones.

Figura 12.3. Tema Dialog.

12.4.   Tema Light

Para aplicar el tema Light hacemos lo mismo que antes, modificando el fichero AndroidManifest.xml.

android:theme="@android:style/Theme.Light"

y la última línea de Tema.java por:

texto.setText("Aplicando el Tema Light");

El resultado se ve en la figura 12.4 (izquierda). El fondo aparece blanco y el texto negro, lo que hasta ahora hemos hecho siempre cambiando a mano el color de fondo y el color del texto.

Otra variante sería la siguiente:

android:theme="@android:style/

Theme.Light.NoTitleBar.Fullscreen"

Y:

texto.setText("Aplicando el Tema");  

texto.append("\nTheme.Light.NoTitleBar.Fullscreen");

que muestra la actividad a pantalla completa, sin que aparezca la barra de estado del teléfono como se ve en le figura 12.4 (derecha).

Figura 12.4. Dos variantes del tema Light.

Ir a la siguiente página

Report Page