You are on page 1of 17

Programacin Android

Rafael Morn Abad rafaelmoron@gmail.com

3. Android 3.4 Recursos y Ficheros

5. Recursos y ficheros

Nombre del Proyecto Cdigo fuente

Cdigo generado Libreras Activos (recursos especiales) Binarios (ficheros de salida)

Recursos Imgenes (por resoluciones) Layouts Valores (cadenas de texto) Manifiesto de la aplicacin Datos para Proguard y eclipse

Manifiesto
Toda aplicacin Android tiene un fichero de Manifiesto, AndroidManifest.xml. Es un fichero con informacin clave para el sistema Android. Es vital para poder ejecutar el cdigo de la aplicacin. Los permisos de la aplicacin para acceder a las APIs se indican en este fichero

<?xml?>

<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="es.rmgamingart" Paquete base android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" />

<application android:icon="@drawable/ic_launcher" Titulo de la aplicacin que android:label="@string/app_name" > se mostrar en el terminal <activity android:name=".VariasActivitiesActivity" Nombre de la clase Activity, android:label="@string/app_name" > con un punto delante <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> Iniciar Actividad al lanzar la aplicacin </activity> <activity Nombre de la clase Activity, android:name=".Actividad2" con un punto delante android:label="@string/app_name" > </activity> </application> </manifest>

Versin mnima de Android requerida Icono de la aplicacin

Ejemplo Prctico: Varias Actividades

Varias Actividades
Realizar una aplicacin para Android 2.2 que permita pasar de una aplicacin a otra pulsando un botn.

Recursos y Activos (Resources and Assets)


Todas las aplicaciones necesitan normalmente ficheros grficos, de sonido, almacenes de certificados, etc En Android hay dos formas de manejar e integrar los recursos en nuestras aplicaciones: Recursos y Activos.

Recursos (I)
Los recursos se almacenan en la carpeta res. Para cada fichero que se introduce en esa carpeta, se crea un identificador (ID) nico en la clase R, que se genera automticamente. No se pueden utilizar subcarpetas ms all de las predefinidas dentro de la carpeta res. Por ejemplo: BitmapFactory.decodeResource( R.drawable.ic_launcher); carga la imagen ic_launcher.png y la devuelve como un objeto de la clase Bitmap.

Recursos (II)
Para recuperar, desde una Actividad, una cadena de texto almacenada como recurso, nos servir: this.getString(R.string.app_name); que devuelve un objeto de tipo String con el valor de la cadena app_name que tenga segn el fichero strings.xml.

Activos
A diferencia de los recursos, en la carpeta de activos (assets) se puede almacenar cualquier tipo de fichero. La clase AssetManager nos da acceso a estos ficheros. Se manejan a travs de InputStream para leer y OutputStream para escribir.

Activos (II)
Ejemplo: Obtener los ficheros de la carpeta de Activos
AssetManager assetManager = getAssets(); String[] files = null; try { files = assetManager.list(""); } catch (IOException e) { Log.e("tag", e.getMessage()); }

Activos (III)
Ejemplo: Leer el contenido de un fichero
AssetManager assetManager = getAssets(); InputStream in = null; try { in = assetManager.open(fichero1.txt); // Procesar los datos } catch (IOException e) { Log.e("tag", e.getMessage()); } finally in.close(); }

Activos (IV)
Ejemplo: Leer el contenido de un fichero de texto.
AssetManager assetManager = getAssets(); BufferedReader fin = null; try { BufferedReader fin = new BufferedReader( new InputStreamReader( openFileInput("prueba_int.txt"))); String texto = fin.readLine(); // Procesar los datos () } catch (IOException e) { Log.e("tag", e.getMessage()); } finally fin.close(); }

Ejemplo Prctico: Pestaas

Pestaas
Realizar una aplicacin para Android 2.2 con tres pestaas. En cada una de las pestaas se mostrar un contenido diferente.