Advertisement
  1. Code
  2. Coding Fundamentals
  3. Tools

Android desde Cero: Cómo Usar Recursos en una Aplicación

Scroll to top
Read Time: 8 min
This post is part of a series called Android From Scratch.
Android From Scratch: Understanding Adapters and Adapter Views
Android From Scratch: How to Store Application Data Locally

() translation by (you can also view the original English article)

Cualquier aplicación que usted desarrolle tendrá que incluir algún tipo de valores y recursos locales, tales como strings, imágenes (incluso si es solo un icono para una aplicación) y colores. En este tutorial, usted aprenderá sobre los recursos en Android y cómo usarlos en sus aplicaciones para mostrar contenido a los usuarios, controlar diferentes tamaños de dispositivos y ofrecer soporte a usuarios a través de varios idiomas.

¿Encuentra más fácil aprender con vídeos? Porqué no revisa nuestro curso:

1. Añadiendo Recursos a Proyectos

Cuando usted crea un proyecto en Android Studio, usted recibe dos directorios principales en su proyecto para los archivos fuentes en java y res. Aquí res significa recursos y, como su nombre supone, contiene los recursos para el proyecto. En el contexto de Android, un recurso es un archivo que presenta algo que puede ser dibujado en pantalla, un formato de archivo para sus clases o un valor que puede ser asociado en su aplicación, tal como un string o valor hexadecimal para un color. En esta sección, aprenderá acerca de varios tipos de recursos disponibles para su aplicación.

Tipos de Recursos

Para usar los recursos en un proyecto Android, usted necesita organizarlos en sub-directorios en la carpeta res. La estructura del directorio de recursos de un proyecto estándar de Android puede lucir así:

Example of A Resource Directory in AndroidExample of A Resource Directory in AndroidExample of A Resource Directory in Android

Hay un número limitado de nombres de directorios que tienen soporte por el sistema de recursos de Android y comprenderlos es necesario mientras continúe en el desarrollo de aplicaciones Android. Vamos a echar un vistazo a ellos con más detalles.

  • animator: El directorio de recurso animator puede contener archivos XML que definen las animaciones para los objetos View en su aplicación. En lugar de definir las animaciones una y otra vez en su código Java, usted puede importar un archivo animator XML en cada lugar que usted necesita para usar una animación específica. Si usted decide cambiar la animación luego, entonce puede cambiarla en una ubicación en su aplicación en lugar de hacerlo en muchas ubicaciones.
  • color: Aunque puede guardar valores de colores hexadecimales en el directorio values, el directorio color es utilizado para almacenar archivos XML que están corelacionados con estados de información con colores específicos. Esto es útil si necesita cambiar el color de una texto de un View o el color de fondo cuando ha tocado para proporcionar un comentario para el usuario.
  • drawable: Si su aplicación requiere recursos de imágenes locales,  como JPGs y PNGs, entonces necesita colocarlas en la carpeta drawable. Además, aquí es donde coloca los archivos XML que definen la forma y el color de los dibujos o imágenes que están dibujadas en código.
  • mipmap: Similiar a drawable, el directorio mipmap acepta elementos bitmap, sin embargo, éste es utilizado específicamente para inicializar un icono. Esto es necesario debido a que Android usa imágenes de un tamaño más grande que la que los dispositivos por lo general usan para inicializar iconos.
  • layout: El directorio layout contiene los archivos XML que definen su interfaz de usuario de su aplicación.
  • menu: Los archivos Menu XML son utilizados para la definición de acción de los menús, sub-menús y barras de navegación. Estos recursos son colocados en el directorio de recursos menu.
  • raw: El directorio raw es utilizado para almacenamiento arbitrario de archivos raw para su aplicación tales como audio, vídeo, y archivos de texto. Este proporciona una forma fácil para acceder a archivos, aunque si usted necesita acceder al nombre del archivo original o a la jerarquía del directorio, entonces debería de considerar colocar sus archivos raw en el directorio asset de Android.
  • xml: Este directorio almacena archivos arbitrarios XML utlizados por Android para varias tareas tales como definir las configuraciones de búsqueda o capacidades externas, tales como el uso de Android Auto.

Valores

Si bien la lista anterior de los recursos de directorios disponibles es bastante larga, hay un directorio más que estará usando a menudo en desarrollador de Android y ese directorio es values. El directorio values puede contener muchos archivos XML que consisten de valores simples que son usados dentro de sus aplicaciones, incluyendo:

  • arrays: Simples objetos arrays que pueden ser leídos en su aplicación.
  • colors: Nombrado color de valores hexadecimales que puede ser utilizado en múltiples ubicaciones dentro de su aplicación.
  • dimens: Las dimensiones pueden definir cualquier tamaño relacionado en Android, incluyendo los tamaños de los textos y de los padding.
  • integers: Si hay enteros específicos que necesita usar en su aplicación, entonces usted puede almacenarlos en el archivos de recursos de enteros para que sean más fáciles de encontrar y cambiar después en su proceso de desarrollo.
  • strings: Los Strings son una necesidad en cualquier aplicación Android que usted construya. En vez de esparcirlos en su código base, usted puede conservar los strings en el archivo strings.xml.
  • plurals: Similar a los strings, los plurals le permiten proporcionar strings alternativos cuando un número está pausado dentro de una función de recuperación. Esto maneja las situaciones donde un cuantificador string cambiaría mediante el número de elementos que éste representa.
  • styles: Cualquier aplicación que usted construya, necesitará un estilo y un toque consistente y esto puede ser logrado a través del uso del archivo styles.xml. Al usar los estilos, usted puede anular los estilos por defecto y buscar componentes y atributos predefinidos que puedan estar asociados con diferentes objetos View en archivos layout.

Como puede ver, el esquema de recursos de Android es extenso. A medida que continúe desarrollando aplicaciones Android, encontrará más y más usos para los archivos de recursos y valores para hacer el desarrollo y el mantenimiento de su aplicación más rápida y más fácil.

2. Accediendo a los Recurso

Ahora que sabe como añadir recursos a su aplicación, usted necesita poder acceder a ellas. Todos los recursos almacenados en su aplicación están, automáticamente asignados a un nombre identificable y consistente del tipo de recurso, tal como drawable o layout y el id en el archivo R de la aplicación. El archivo R es un archivo generado por la herramienta Android Asset Packaging, o aapt, durante la compilación. Este nombre generado puede ser utilizado para acceder al recurso en el código de Java u otro archivo de recurso XML.

Teniendo acceso a los Recursos en Java 

Muchos objetos en Android están construidos con identificadores de recursos en mente y aceptan el id para el recurso con el fin de usar ese recurso. Un ejemplo de esto es la configuración de un ImageView para usar un recurso de dibujo para pasarlo en el id R.

1
mImageView.setImageResource(R.drawable.test);

De manera similar, un objeto MediaPlayer (utilizado para reproducir audio o vídeo) puede ser creado para reproducir un archivo raw al pasarlo en el archivo con el id R.

1
MediaPlayer.create(getActivity(), R.raw.sample_media)

Si bien un gran número de objetos acepta un recurso id, hay ocasiones donde usted quiere recuperar el recurso original en su código. Usted puede hacer esto usando el método getResources() que está disponible en el objeto Context de Android. Este devuelve un objeto Resources con múltiples métodos para acceder a recursos de aplicaciones locales, tales como getColor() y getDrawable().

1
getResources().getColor(R.color.colorPrimary);
2
getResources().getDrawable(R.drawable.kittens);

Accediendo a los Recursos en XML

La mayoría de las veces, cuando usted está usando recursos, éste estará en otros archivos XML. Al definir los colores, estilos, texto o cualquier otro recurso que es utilizado en varios lugares de su aplicación, los vuelve más simple al permitirle cambiar un valor y tenerlo a través de su aplicación. Por fortuna puede acceder a los recursos en un atributo XML pasando el id a una casilla que espera un recurso id.

1
<TextView
2
    android:id="@+id/tv_test"
3
    android:layout_width="wrap_content"
4
    android:layout_height="wrap_content"
5
    android:background="@color/colorPrimary"
6
    android:text="@string/title"
7
    style="@style/TitleStyle"/>

3. Proporcionando Recursos Alternativos

Casi todas las aplicaciones que usted construya deberán manejar varios tamaños de dispositivos, configuraciones e idiomas de usuarios. Añadiendo cuantificadores específicos al final de un directorio de recurso, el sistema Android prioriza esos recursos cuando ciertas condiciones se encuentran.

Densidad de Pantalla

Para evitar la pixelación, los recursos bitmap que usted cree para sus aplicaciones deberán ser hechas por una densidad de pixel específico. Al añadir, -ldpi, -mdpi, -hdpi y otros cuantificadores para la carpeta directorios, como vimos en la imagen mipmaps al comienzo de éste artículo, el sistema Android sabe cual recurso usar para cualquier dispositivo en particular que ejecute su aplicación.

Idiomas de Usuarios

Puede crear directorios de valores individuales para cada idioma que su aplicación tenga soporte, por medio de añadir un lenguaje de código al final del nombre del directorio, por ejemplo; values-fr o values-es para Francés y Español.

Cuando un usuario tenga sus conjuntos de idiomas a uno de estos idiomas, el sistema proporciona cualquier valor en el nuevo recurso de directorio para el usuario  en vez de los valores por defecto. Esto es útil para volver a colocar recursos string con traducciones adecuadas.

Tabletas y el Soporte de Orientación

Puede añadir -land a un directorio de recurso para que esos valores desactiven los valores por defecto cuando un dispositivo esté en modo apaisado. Además, puede definir una anchura mínima para un dispositivo para un directorio de recurso para desactivar los valores por defecto con el objetivo de tener soporte para las tabletas al añadir -sw600dp  para tabletas de tamaño medio (tales como Nexux 7) y -sw720dp para tabletas más grandes.

En conclusión

Cualquier aplicación que usted construya incluirá recursos y comprender cómo puede acceder a ellos y a las configuraciones de soporte de varios dispositivos es una parte importante de ser un desarrollador Android. En este artículo usted aprendió que tipo de recursos puede ser incluido en una aplicación, como puede acceder a ellas en Java y en XML, y como desactivar los recursos en situaciones específicas.

Advertisement
Did you find this post useful?
Want a weekly email summary?
Subscribe below and we’ll send you a weekly email summary of all new Code tutorials. Never miss out on learning about the next big thing.
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.