Android accesso alle risorse (II di II)

In questo secondo articolo vogliamo mostrarvi, con un esempio pratico, come sia possibile modificare le risorse di un un applicativo Android a runtime, nell’area download è possibile scaricare il progetto d’esempio, qui il link all’articolo precedente.

Cambiamento delle risorse a Runtime
La classe Activity di Android, ha la capacità di ricevere notifiche sul cambiamento di configurazione da parte del dispositivo; l’evento viene gestito tramite il metodo onConfigurationChanged(Configuration config). nel progetto d’esempio viene gestito l’evento del cambio della configurazione sull’orientamento del video: per abilitare un Activity alla ricezione dell’evento oltre a sovrascrivere il metodo della classe padre Activity è necessario dichiarare che suddetta Activity è abilitata a ricevere questo evento; aggiungiamo quindi nel file di configurazione dell’applicazione(AndroidManifest.xml) una ulteriore direttiva: android:configChanges=”orientation|keyboardHidden”

<activity android:name=”.ResChangeExample”
android:label=”@string/titoloApplicazione”
android:configChanges=”orientation|keyboardHidden”>

onconfigurationchanges

Lo scopo dell’esempio è quello di mostrare due immagini differenti in base all’orientamento del video del dispositivo, come si puo’ notare nel file di risorse, oltre all’icona abbiamo aggiunto altre due immagini amit.jpg e amobl.jpg img_resource

Per default carichiamo una delle due immagini definendole nel file di layout, come si può notare  l’immagine viene referenziata tramite il riferimento “@drawable/amit”,  “@drawable” indica che la risorsa si trova nel folder “res/drawable/” seguita poi dal nome del file immagine senza estensione.

Vediamo nel video il funzionamento dell’applicazione: tramitela combinazione dei tasti CTRL+F11  forziamo l’emulatore a cambiare l’orientamento del display. Da notare il cambiamento d’immagine al variare dell’orientamento.

Il codice in dettaglio:

methodIn questo articolo abbiamo visto un  esempio abbastanza banale ma che rende bene l’idea di come si possano gestire i vari cambi di configurazione consentiti dal dispositivo(Language, Screen Orintation, Keyboard input type, ecc). Da notare che al momento con l’attuale versione di Android non è possibile agire sul cambio di Locale fissato al lang  “en”.

Share/Save/Bookmark