lunedì 9 novembre 2015

Multiple Screen

La risoluzione di un dispositivo è il numero di pixel presenti in uno schermo.
La densità (dpi) è il numero di pixel presenti all'interno di un pollice della diagonale dello schermo.

ppi 1

La risoluzione non è molto utile nel design di un app Android in quanto non tiene conto della dimensione fisica del dispositivo. Ecco perchè Android lavora in termini di Density-Independent Pixel (dp) che permettono al designer di creare elementi indipendenti dalla risoluzione e della densità dello schermo del dispositivo.


Un dp è equivalente ad 1px su uno schermo da 160dpi, ovvero la densità base riferita ad uno schermo a densità media. In pratica 1 pixel = DP * (DP / 160).
Ad esempio:
  • a 160dpi, un dp corrisponde ad un pixel
  • a 320dpi, un dp corrisponde a due pixel
Tutto questo per dire che ci sono dispositivi con la stessa risoluzione, cioè con lo stesso numero di pixel, ma con una quantità di spazio differente.


Density buckets

Quando si sviluppa un app, una delle possibilità è quella di fornire come risorsa l'immagine con la densità più alta possibile, in modo che sia poi Android ad effettuare lo scaling (down-sampling) della stessa per i dispositivi a densità minore.
La soluzione migliore, in ogni caso, consiste nel fornire un'immagine per ogni densità disponibile. Ci sono molti tools per creare automaticamente le immagini per ogni density bucket. Uno di questi è l'Android Asset Studio.

Project folders

E' necessario creare una struttura di cartelle con dei qualificatori all'interno della cartella res per il salvataggio delle risorse relative a ciascuna tipologia di dispositivi.

State List Drawables

Gli elementi grafici della UI dell'app possono cambiare aspetto per indicare lo stato in cui si trovano.
Questo genere di situazioni viene gestito in Android mediante gli state list drawables, che sono dei file XML che elencano le risorse da usare per un particolare stato dell'elemento grafico.

Quando si usano questi particolari drawable, Android analizza l'XML partendo dall'alto fino a trovare il primo item che soddisfa lo stato indicato. In pratica, dà la precedenza agli item posizionati in alto rispetto a quelli posizionati in basso. Per questo motivo, se volete usare un'immagine che rappresenta stati multipli (ad esempio, checked e pressed contemporaneamente) occorre riportare in alto questa combinazione.

Nessun commento:

Posta un commento