 |
Práctica: Recursos alternativos en Asteroides |
1.Ejecuta en el emulador la aplicación creada en el punto anterior.
2.Los teléfonos móviles basados en Android permiten cambiar la configuración en apaisado y en vertical. Para conseguir este efecto con el emulador, pulsa Ctrl-F11. Si usas un dispositivo de pantalla pequeña, observas como el resultado de la vista que acabas de diseñar en vertical no queda todo lo bien que desearíamos.
Para resolver este problema, Android te permite diseñar una vista diferente para la configuración horizontal y otra para la vertical.
3.Crea la carpeta res/layout-land.
4.Copia en ella el fichero activity_main.xml. Para ello selecciona el fichero y pulsa Ctrl-C. Selecciona la carpeta destino y pulsa Ctrl-V.
5.Crea una vista similar a la que ves a continuación: formada por un LinearLayout que contiene un TextView y un TableLayout con dos Button por columna.
6.Ejecuta de nuevo la aplicación y observa como la vista se ve correctamente en las dos orientaciones.
 |
Solución: |
Has de obtener un código XML similar al siguiente:
NOTA: para conseguir que en un TableLayout las columnas se ajusten a todo el ancho de la tabla, poner stretchColumns="*". stretchColumns="0" significa que se asigne la anchura sobrante a la primera columna. stretchColumns="1" significa que se asigne la anchura sobrante a la segunda columna. stretchColumns="*" significa que se asigne la anchura sobrante entre todas las columnas.
Android utiliza una lista de sufijos para expresar recursos alternativos. Estos sufijos pueden hacer referencia a la orientación del dispositivo, el lenguaje, la región, la densidad de píxeles, la resolución, el método de entrada, etc.
Por ejemplo, si queremos traducir nuestra aplicación al inglés, español y francés, siendo el primer idioma el usado por defecto, crearíamos tres versiones del fichero strings.xml y lo guardaríamos en los tres directorios siguientes:
res/values/strings.xml
res/values-es/strings.xml
res/values-fr/strings.xml
 |
Ejercicio: Traducción de Asteroides |
1.Crea la carpeta res/values-en.
2.Copia en ella el fichero strings.xml.
3.En este fichero traduce al inglés todas las cadenas.
4.Ejecuta la aplicación
5.Vamos a cambiar la configuración de idioma en un dispositivo Android. Para ello accede a Ajustes del dispositivo (Settings) y selecciona la opción Mi dispositivo > Idioma e introducción. Dentro de esta opción selecciona como idioma Español. NOTA: observa que en otros idiomas permite seleccionar tanto el idioma como la región. Por desgracia, para el español solo permite dos regiones: España y Estados Unidos.
6.Observa cómo, ahora, se ha traducido el texto.
Otro ejemplo de utilización de recursos diferenciados lo podemos ver con el icono que se utiliza para lanzar la aplicación. Observa cómo, al crear una aplicación, este icono se crea en cinco carpetas drawable diferentes, para utilizar un icono distinto según la densidad de píxeles del dispositivo:
res/drawable-ldpi/ic_launcher.png
res/drawable-mdpi/ic_launcher.png
res/drawable-hdpi/ic_launcher.png
res/drawable-xhdpi/ic_launcher.png
res/drawable-xxhdpi/ic_launcher.png
NOTA: En el siguiente capítulo se describe por qué se actúa de esta manera.
Resulta posible indicar varios sufijos concatenados; por ejemplo:
res/values-en-rUS/strings.xml
res/values-en-rUK/strings.xml
Pero cuidado, Android establece un orden a la hora de encadenar sufijos. Puedes encontrar una lista de estos sufijos en el apéndice C y en este enlace:
http://developer.android.com/guide/topics/resources/providing-resources.html
Para ver los sufijos disponibles, también puedes pulsar con el botón derecho sobre una carpeta de recursos y seleccionar New > Other… > Android > Android XML File. Esta opción te permite crear un nuevo fichero XML y poner el sufijo deseado de forma y orden correctos.
 |
Vídeo[tutorial]: Uso de recursos alternativos en Android |
 |
Práctica: Creando un layout para tabletas en Asteroides |
Si ejecutas la aplicación Asteroides en una tableta, observarás que el tamaño de los botones es demasiado grande.
1.Trata de hacer un layout alternativo a main.xml, que sea utilizado en pantallas de tamaño xlarge (7-10,5 pulgadas).
2.Si lo deseas, también puedes personalizar el fondo de la pantalla (atributo background), los tipos de letras, los colores, etc.
3.Verifica que la aplicación se visualiza correctamente en todos los tipos de pantalla, tanto en horizontal como en vertical.
 |
Preguntas de repaso: Recursos alternativos |
2.7. Tipos de recursos y recursos del sistema
La definición de los recursos en Android es un aspecto muy importante en el diseño de una aplicación. Una de sus principales ventajas es que facilita a los diseñadores gráficos e introductores de contenido trabajar en paralelo con los programadores.
Añadir un recurso a nuestra aplicación es muy sencillo, no tenemos más que añadir un fichero dentro de una carpeta determinada de nuestro proyecto. Para cada uno de los recursos que añadamos el sistema crea, de forma automática, un id de recurso dentro de la clase R.
Según la carpeta que utilicemos, el recurso creado será de un tipo específico. Pasamos a enumerar las carpetas y los tipos posibles:
Veamos los tipos de recursos que encontramos dentro de la carpeta values:
Aunque el sistema crea ficheros que aparecen en la columna de la izquierda de la tabla anterior y se recomienda definir los recursos de cadena dentro de strings.xml, hay que resaltar que no es más que una sugerencia de organización. Sería posible mezclar cualquier tipo de recurso de esta tabla dentro de un mismo fichero y poner a este fichero cualquier nombre.
Читать дальше