back to top

Visualizziamo a schermo un’immagine con ImageView – Guida Sviluppo App Android

L’ImageView altro non è che l’oggetto che permette al programmatore di mostrare a schermo un’immagine. Prima di fare un esempio pratico relativo alla visualizzazione di una ImageView è necessario capire dove inserire la nostra immagine e capire la struttura della cartella res del nostro progetto.

Andando ad esplorare proprio questa cartella troveremo una sottocartella layout, che abbiamo utilizzato abbondantemente fino a questo momento, ed altre tre sotto cartelle identificate dai seguenti nomi:

  • drawable-hdpi
  • drawable-mdpi
  • drawable-ldpi

Le sottocartelle sopra elencate sono quelle che dovranno contenere le immagini che desideriamo inserire all’interno della nostra applicazione.

Ma quale è il significato di queste cartelle? Dunque dato che Android è un sistema operativo mobile che è installato su dispositivi diversi aventi risoluzone diversa, per avere una sorta di ottimizzazione dell’immagine è opportuno creare tre versioni delle immagini a grandezze differenti. Queste tre versioni delle immagini dovranno essere inserite in ordine di grandezza dalla più grande alla più piccola nelle cartelle viste sopra.

Ovviamente per visualizzare un’immagine a schermo è sufficiente che ci sia almeno una versione dell’immagine all’interno di una delle tre cartelle. Nel caso in cui volessimo mostrare un’immagine ottimizzata per schermi a bassa risuluzione su schermi ad alta risoluzione dovremo necessariamente ingrandire l’immagine causando un inevitabile sfuocamento dell’immagine stessa.

Detto ciò forniamo un esempio pratico. Prendiamo un’immagine di esempio e inseriamola nelle cartelle viste sopra (anche evitando di creare tre versioni dell’immagine). Fatto ciò è necessario aprire il file activity_main.xml ed inserire il codice relativo alla dichiarazione della nostra ImageView che abbiamo chiamato Image:

<ImageView android:id="@+id/Image" 
  android:layout_width="wrap_content" 
  android:layout_height="wrap_content">
</ImageView>

Apriamo adesso il file .java ed importiamo l’oggetto ImageView

android.widget.ImageView

dichiariamo un oggetto di tipo ImageView

private ImageView miaImmagine;

ed infine inseriamo il seguente codice:

miaImmagine = (ImageView) findViewById(R.id.Image);
miaImmagine.setImageResource(R.drawable.ImmagineEsempio);

Come possiamo vedere il codice relativo alla visualizzazione di un’immagine è molto semplice. Nella prima riga associamo l’elemento dichiarato nell’XML con quello dichiarato nel codice ed in seguito impostiamo il valore dell’immagine con il metodo setImageResource. Passiamo a questo metodo il codice relativo alla nostra immagine che troviamo nel file R sella sotto-classe drawable.

Come è intuibile, quando inseriamo una qualsiasi immagine all’interno di una delle cartelle drawable-… automaticamente verrà creata una costante relativa all’immagine nel file R nella sotto-classe drawable. Il nome usato nell’esempio, ImmagineEsempio, è il nome relativo al file che identifica l’immagine. Come possiamo vedere è sufficiente inserire solamente il nome del file omettendo l’estensione.

Una particolarià di Android è quella di effettuare un resize automatico dell’immagine di dimensioni superiori alla risoluzione dello schermo. Per vedere questo comportamento è sufficiente mostrare a schermo un’immagine ad alta risoluzione. Quest’ultima verrà ridimensionata, in maniera del tutto automatica, e adattata allo schermo del simulatore o del dispositivo senza problemi. Il resize di un’immagine da più grande a più piccola non comporta nessuna perdita di qualità (si aumentano però le operazioni che vengono eseguite dal sistema operativo quando viene lanciata l’appliczione) viceversa, come abbiamo detto precedentemente, si avrebbe una perdita di qualità proporzionale all’ingrandimento.

Pubblicitร 

In questa guida...