Android accesso alle risorse (I di II)

Android supporta l’esternalizzazione delle risorse, una pratica che evita di cablare le risorse a livello di codice. Le risorse esternalizzate in Android possono essere di vario tipo: stringhe, colori, immagini, animazioni, temi e layout.

Esternalizzare una risorsa significa aumentare la manutenibilità l’aggiornamento  e la gestione in generale di una applicazione, un esempio su tutti è il concetto d’internazionalizzazione che utilizza un file diverso per ogni lingua.

Come funziona l’esternalizzazione di Android?

Le risorse applicative sono memorizzate sotto la cartella  /res del progetto, ogni risorsa  è contenuta all’interno di una sotto cartella specifica in base alla sua tipologia. Quando creiamo un nuovo progetto(da Eclipse) automaticamente ADT(Android Developer Tool) creerà il folder /res e  tre “subfolder”  principali, che sono: values, drawable e layout.

resdrawable contiene i files immagini, possono essere usati oltre i file png anche formati jpeg e gif anche se il prmo formato è da preferire

layout contiene i file di layout, questi file hanno lo scopo di disaccoppiare  il layer di presentazione da quello di business, tramite questi file xml è possibile infatti disegnare la user interface per ogni singola “activity”. Avere un disaccoppiamento della  view dal codice offre una serie di benefici, un esempio su tutti è la possibilità di definire viste diverse in base a l’hardware e/o alla dimensioni dello schermo o al suo orientamento(verticale/orizzontale).

values in questa cartella vengono definite tutte le risorse come stringhe, colori e dimensioni.Nel file xml è possibile definire il tipo di valore memorizzato: “<string”,”<dimen”,”<color” e “<array”

Come utilizzare le risorse

Le risorse possono essere utilizzate direttamente nel codice, oppure  referenziate in altre risorse, la classe R contiene un riferimento statico per ogni tipo di risorsa( R.string , R.drawable), ogni volta che viene aggiunta o modificata una risorsa, ADT si occupa di aggiornare la classe R aggiungendo i riferimenti alle risorse  definite nelle directorie contenute in /res.

Nel prossimo articolo andremo in dettaglio sull’argomento  e realizzeremo un applicativo d’esempio con il quale poter variare dinamicamente il layout.

Share/Save/Bookmark