Es posible utilizar en una aplicación Android ficheros XML para especificar distintos tipos de recursos. Estos ficheros
deben encontrarse en la ubicación /res de la aplicación, organizados en función del tipo de recurso que representan en subcarpetas
cuyo nombre indica qué elementos proporcionan a la aplicación:
Carpeta
|
Recurso
|
animator
|
Animación
de propiedades
|
anim
|
Animaciones
por interpolación
|
color
|
Colores
|
drawable
|
Imágenes
|
layout
|
Layout
|
menu
|
Menús
|
raw
|
Otros
elementos
|
values
|
Ficheros
de valores
|
xml
|
Otros
ficheros XML
|
Dentro de la
carpeta values se pueden encontrar ficheros de distintos tipos, como por
ejemplo los ficheros de recursos String que contienen las cadenas de caracteres
que se usan en la aplicación. Es una práctica muy recomendable utilizar
ficheros de recursos para los títulos, etiquetas, mensajes y cualquier otro
tipo de elemento textual de la aplicación de forma que facilite el
mantenimiento en caso de modificación de los mismos, la reutilización en
distintos elementos gráficos,
así como la traducción en caso de aplicaciones
multi-idioma.
Lo mínimo necesario
Un fichero strings.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Título</string>
<string name="my_button_text">Botón</string>
…
|
Referenciar a las cadenas desde cualquier otro
fichero de recurso de la app:
<Button
android:id="@+id/my_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/my_button_text"/>
|
También se puede hacer referencia a los
recursos desde código fuente:
TextView msgTextView = (TextView) findViewById(R.id.msg);
msgTextView.setText(R.string.hello_message);
|
Adaptación de recursos e
Internacionalización
Android está presente en dispositivos con distintas capacidades y
que se emplean con distintas configuraciones y en distintas localizaciones
geográficas. Para llegar a la mayor cantidad de usuarios y dispositivos, la
aplicación debe manejar texto, archivos multimedia o gráficos teniendo en
cuenta distintas características de pantalla, versiones de sistema operativo,
estado, localización o cualquier tipo de criterio que pueda motivar distintos
recursos para la aplicación.
En Android, gracias a la separación entre los ficheros de recursos
y el código con la funcionalidad de la app, esta adaptación resulta sencilla y
limpia, siempre que se sigan los criterios necesarios a la hora de organizar la
información. Se consideran recursos las cadenas de texto, diseño, sonidos,
gráficos y cualquier otro dato estático de la aplicación susceptible de estar
sujeto a cambios por adaptación o localización. Cuando el usuario ejecuta la
aplicación, Android selecciona automáticamente y carga los recursos que mejor
se adapten al dispositivo.
Para organizar los recursos, la app puede especificar todos los
directorios de recursos adaptados que sean necesarios. Estos directorios se
encuentran dentro de la carpeta /res y utilizan la nomenclatura <resources_name>-<config_qualifier> donde resources-name se refiere al nombre del tipo de recurso
(drawable, layout, values, …) y config-qualifier al tipo de configuración a la
que se refiere (pantalla, idioma, orientación, …).
El nombre de un directorio de recursos y el orden de los sufijos
deben seguir los criterios establecidos por Android, de otra forma el proyecto
no puede ser construido.
En tiempo de ejecución también pueden existir problemas derivados
de la adaptación de recursos. Android debe encontrar para cada recurso al menos
su definición en la carpeta por defecto, en caso contrario se produce un error.
Esto significa que el sistema al buscar un recurso (R.string.app_name) siempre
mirará en la carpeta de recursos más específica a la situación concreta
(values-en), si dentro de los recursos de esa carpeta no localiza el recurso
buscará en la carpeta por defecto (values) y en caso de no localizarlo se
produce el error y la app se detiene.
No hay comentarios:
Publicar un comentario