IMPORTANT: Per accedir als fitxer de subversion: http://acacha.org/svn (sense password). Poc a poc s'aniran migrant els enllaços. Encara però funciona el subversion de la farga però no se sap fins quan... (usuari: prova i la paraula de pas 123456)

Una bona aplicació Android és més que només cpdi. Els recursos d'una aplicació Android(Android App Resources) sónels fitxers adicionals que representen el contingut estàtic que el codi utilitzar(bitmaps, definicions de layouts, strings de la interfície, etc.)

Seguint els típics i aconsellables paradigmes de disseny, és altament recomanable externalitzar els recursos com les imatges o els textos del codi font. Això té múltiples avantatges, per exemple:

  • Suportar diferents configuracions. Per exemple, diferents idiomes o mides de pantalla.
  • Tot això sense haver de fer modificacions del codi per tal d'adaptar l'aplicació a nous possibles dispositius o configuracions fet molt important per que contínuament surten nous dispositius amb noves característiques.

Qualsevol tipus de recurs pot classificar en un dels següents grups:

  • Recursos per defecte (default resources): Són els recursos que s'utilitzaran per defecte independentment de la configuració del dispositiu o quan no s'especifiquen recursos alternatius per a la configuració actual.
  • Recursos alternatius (Alternative resources): són els que es disseyen per a una configuració específica. Per especificar que un conjunt de recursos són per a una configuració especifica, s'afegeix un sufix al nom de la carptea on estan els recursos. Aquest sufix es coneix com a configuration qualifier.

Resource devices diagram1.png

Com s'explica a l'apartat Estructura d'una aplicació Android, els recursos es guarden a la carpeta res. Vegem un exemple de configuration qualifier:

El layous de la interfície gràfica (layout UI) per defecte es guarda a la carpeta:

res/layout

Però es poden especificar altres layouts per a altres tipus de pantalles, o per exemple per a una orientació horitzaontal (landscape):

res/layout-land/

Android automàticament aplica els recursos adequats.

La següents és una taula de les carpetes (segons el tipus de recurs) que us podeu trobar a dins de la carpeta res:


animator/ 	fitxers XML que defineixen propietats de lees animacions
anim/ 	fitxers XML que defineixen tween animations
color/ 	XML files that define a state list of colors. See Color State List Resource
drawable/ 	
Bitmap files (.png, .9.png, .jpg, .gif) or XML files that are compiled into the following drawable resource subtypes:

   Bitmap files
   Nine-Patches (re-sizable bitmaps)
   State lists
   Shapes
   Animation drawables
   Other drawables
   Drawable Resources
layout/ 	Fitxers XML que defineixen layouts de la interfície gràfica. Vegeu Layout Resources.
menu/ 	Fitxers XML que defineixen menús d'aplicaciones, com els menús Options Menu, Context Menu, o Sub Menu. Vegeu Menu Resource.
raw/ 	Aquest és un directori tipus calix de sastre, que permet guardar qualsevol tipus de recurs en cru (raw). Es poden obrir aquests recursos amb com a 
InputStream, utilitzant Resources.openRawResource() i passant com a paràmetre el resource ID, que és R.raw.filename
values/    Conté fitxers XML que contenen valors simples, com strings, enters o colors. A diferencia de les altres carpetes on cada fitxers descriu un recurs, 
aquí s'utilitza un sol fitxers per a tots els recursos del mateix tipus. Es poden posar els noms que es vulguin però es recomana:
 - arrays.xml: per definir vectors de recursos (aka typed arrays).
 - colors.xml: per valors de colors
 - dimens.xml: pre valors de dimensions
 - strings.xml: per a valors de text.
 - styles.xml: per a definir Android styles.
Vegeu String Resources, Style Resource, i altres Resource Types.
xml/ 	Permet guardar fixers XML de qualsevol tipus. En temps d'execución aquests fitxers estan disponibles amb Resources.getXML(). Serveix per exemple per 
guardar fitxers de configuració XML

De totes maneres, si es necessita accedir als recursos pel seu nom original de fitxers, es pot considerar la posibilitat d'utilitzar la carpeta:

assets

en comptes de res/raw

Els fitxers que es troben a la carpeta assets/ no tenen un resource ID, i per tant només es poden utilitzar utilitzant la classe AssetManager values/

XML files that contain simple values, such as strings, integers, and colors.

Whereas XML resource files in other res/ subdirectories define a single resource based on the XML filename, files in the values/ directory describe multiple resources. For a file in this directory, each child of the <resources> element defines a single resource. For example, a <string> element creates an R.string resource and a <color> element creates an R.color resource.

Because each resource is defined with its own XML element, you can name the file whatever you want and place different resource types in one file. However, for clarity, you might want to place unique resource types in different files. For example, here are some filename conventions for resources you can create in this directory:

   arrays.xml for resource arrays (typed arrays).
   colors.xml for color values
   dimens.xml for dimension values.
   strings.xml for string values.
   styles.xml for styles.

See String Resources, Style Resource, and More Resource Types. xml/ Arbitrary XML files that can be read at runtime by calling Resources.getXML(). Various XML configuration files must be saved here, such as a searchable configuration.

Recursos:

Tipus de recursos

Podeu obtenir una llista completa de recursos a:

http://developer.android.com/guide/topics/resources/available-resources.html

Recursos alternatius

La forma de proveir de recursos alternatius a una aplicació Android és la següent:

  • Crear un nou directoru a la carpeta res/. La sintaxi és:
<resources_name>-<config_qualifier>

On:

  • <resources_name>: és el nom del directory on està definit el corresponent recurs per defecte (default resources)
  • <qualifier>: és un nom reservat que especifica una tipus de configuració individual.

Un exemple clar són les carpetes drawable que us genera Eclipse:

res/
   drawable/   
       icon.png
       background.png    
   drawable-hdpi/  
       icon.png
       background.png  

NOTA: Es pot indicar més d'un <qualifier>, cal separar cada qualificador amb un guió (dash).És important però posarlos en ordre segons les les taules de http://developer.android.com/guide/topics/resources/available-resources.html

on hdpi és un qualifier que indica dispositius amb pantalles high-density.


TODO
taules: http://developer.android.com/guide/topics/resources/providing-resources.html#AlternativeResources

Localització

IMPORTANT 

En un mon internacionalitzat