Recursos Android gestión (Recursos)
Hay muchas cosas que se usan para construir una excelente aplicación para Android. Además de la codificación de la aplicación, es necesario centrarse en una variedad de recursos, tal como se utiliza una variedad de contenido estático, tales como mapas de bits, colores, diseño, definición cadenas de la interfaz de usuario, la animación y así sucesivamente. Estos recursos se colocan generalmente en res / subdirectorio independiente del proyecto.
Esta sección del tutorial aprenderá a organizar los recursos de la aplicación, especifique los recursos alternativos, y acceder a ellos en su aplicación.
recursos de la organización en Eclipse
Tendrá que ser colocado en cada uno de los recursos bajo el subdirectorio específico de su proyecto res / directorio. Por ejemplo, este es un proyecto simple a nivel de archivos:
MyProject/ src/ MyActivity.java res/ drawable/ icon.png layout/ activity_main.xml info.xml values/ strings.xml
res / contiene todos los recursos en varios subdirectorios. Aquí hay un recurso de imagen, dos recursos de diseño y un archivo de recurso de cadena. La siguiente tabla ofrece una detallada en la res de proyectos / recursos de asistencia de directorio.
directorio | Tipo de recurso |
---|---|
anim / | archivo XML que define la propiedad de animación. Se guardan en res / animal / carpeta, por tipo de acceso R.anim |
el color / | archivo XML que define la lista de estado de color. Se guardan en res / color / carpeta, por tipo de acceso R.color |
dibujable / | Los archivos de imagen, como PNG, JPG, GIF o un archivo XML, se compila como un mapa de bits, lista del estado, formas, imágenes animadas. Se guardan en res / estirable / carpeta, por tipo de acceso R.drawable |
diseño / | Interfaz de usuario personalizada estructura del archivo XML. Se guardan en res / layout / carpeta, por tipo de acceso R.layout |
menú / | archivos XML del menú de aplicaciones personalizadas, como el menú de opciones, menús contextuales, submenús. Se guardan en res / menú / carpeta, por tipo de acceso R.menu |
prima / | Cualquier archivo se guardan en su forma original. Necesitamos R.raw.filename Identificación recurso con nombre, para abrir el archivo en bruto llamando Resource.openRawResource () |
valores / | archivos XML contienen valores simples (tales como cadenas, enteros, color, etc.). Aquí están algunos recursos en virtud de las convenciones de nombres de carpetas. arrays.xml en nombre de una serie de recursos, a través de tipo R.array de acceso; integers.xml representa un número entero de los recursos se accede a través R.integer clase; bools.xml recursos en nombre de los valores booleanos, el tipo de acceso de R.bool; colors.xml recursos en nombre del color, se accede a través de clases R.color; dimens.xml representantes dimensión de valores, a través de tipo R.dimen de acceso; strings.xml representa un recurso de cadena, a través de tipo R.string de acceso; representantes styles.xml recurso de estilo, por tipo de acceso R.style |
xml / | Llamando Resources.getXML () para leer archivos XML arbitrarios en tiempo de ejecución. Varios archivos de configuración se pueden guardar en tiempo de ejecución aquí |
Recursos alternativos
Su aplicación debe proporcionar recursos para apoyar una configuración alternativa para un dispositivo específico. Por ejemplo, es necesario proporcionar una visión alternativa de recursos para diferentes resoluciones de pantalla, ofreciendo una cadena de recursos alternativos para diferentes idiomas. En tiempo de ejecución, Android detecta la configuración actual del dispositivo, y cargar los recursos adecuados para una aplicación.
Para identificar un conjunto de recursos alternativos para la configuración específica, siguiendo los pasos de:
- Crear un nuevo directorio res / a <resource_name> _ <config_qualifier> se nombran. Aquí resources_name los recursos mencionados en la tabla, tales como el diseño y fotografías. calificador determinará qué recursos utilizar la configuración personalizada. Se puede ver la documentación oficial para obtener una lista completa de los diferentes tipos de recursos calificador.
- El ahorro de recursos alternativos en respuesta a este directorio. Estos archivos de recursos deben mostrar el nombre del archivo de recursos predeterminado es consistente con los siguientes ejemplos, sin embargo, estos documentos se determinará el contenido de la sustitución. Por ejemplo: Si bien el archivo de la imagen el nombre del mismo, pero la resolución de la pantalla de la resolución de la imagen será mayor.
He aquí un ejemplo, para especificar la imagen predeterminada de la pantalla y de alta resolución de imagen de sustitución.
MyProject/ src/ main/ java/ MyActivity.java res/ drawable/ icon.png background.png drawable-hdpi/ icon.png background.png layout/ activity_main.xml info.xml values/ strings.xml
He aquí otro ejemplo, para especificar el lenguaje de diseño predeterminado y diseños alternativos lengua árabe.
MyProject/ src/ main/ java/ MyActivity.java res/ drawable/ icon.png background.png drawable-hdpi/ icon.png background.png layout/ activity_main.xml info.xml layout-ar/ main.xml values/ strings.xml
El acceso a los recursos
En el desarrollo de aplicaciones, es necesario el acceso a los recursos definidos, ya sea a través de código o mediante archivos XML. Las siguientes secciones describen cómo acceder a estos recursos por separado en dos escenarios.
En el código para acceder a los recursos
Cuando la aplicación Android se compila para generar una clase I, que contiene el ID y todos los recursos del directorio / res. Puede utilizar la clase R, + por el nombre de recurso subclase o utilizar directamente el identificador de recursos para acceder a los recursos.
Ejemplos
res de acceso / estirable / myimage.png, y establecerlo en la ImageView, se usaría el siguiente código:
ImageView imageView = (ImageView) findViewById(R.id.myimageview); imageView.setImageResource(R.drawable.myimage);
La primera línea de código en aquí para obtener R.id.myimageview myimageview definido de ImageView en el archivo de diseño. La segunda línea con R.drawable.myimage para obtener la imagen en res / estirable en un subdirectorio llamado myimage.
Ejemplos
Consideremos un ejemplo en el que res / valores / strings.xml define como sigue:
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="hello">Hello, World!</string> </resources>
Ahora se puede utilizar el ID de la msg objeto de Vista de Texto ID de recurso para establecer el texto, de la siguiente manera:
TextView msgTextView = (TextView) findViewById(R.id.msg); msgTextView.setText(R.string.hello);
Ejemplos
Considere la siguiente definición de la res de diseño / layout / activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:id="@+id/text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello, I am a TextView" /> <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello, I am a Button" /> </LinearLayout>
El código de aplicación se carga la disposición actividad, método onCreate () como sigue:
<?xml version="1.0" encoding="utf-8"?> <resources> <color name="opaque_red">#f00</color> <string name="hello">Hello!</string> </resources>
El acceso en XML
Considere el siguiente código XML archivo de recursos res / valores / strings.xml, que contiene un recurso de color y un recurso de cadena -
<?xml version="1.0" encoding="utf-8"?> <EditText xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:textColor="@color/opaque_red" android:text="@string/hello" />
Ahora, puede utilizar estos recursos en el siguiente archivo de diseño para establecer el color del texto y el contenido del texto:
<code><?xml version="1.0" encoding="utf-8"?> <EditText xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:textColor="@color/opaque_red" android:text="@string/hello" /> </code>
Ahora, si regresa a la sección anterior para explicar el "Hello World!" Instancia, puedo confirmar que en esta sección todos tienen una mejor comprensión del concepto. Por lo tanto, recomiendo fuertemente que volver a mirar en los ejemplos anteriores, y utilizo una visión diferente del uso básico de recursos.