Usare mipmap nei progetti Android
Vedremo i passaggi per aggiornare le risorse legate alla cartella drawable, in progetti Android creati con versioni antecedenti alla 4.3
Come visto in uno dei precedenti tutorial, esitono alcuni servizi online per la creazione delle icone di lancio di un'applicazione, alle diverse risoluzioni, uno tra questi il famoso Android Asset Studio
Come ben saprai, quando si crea un'applicazione e la si pubblica su Google Play, questa può essere installata da utenti in possesso di dispositivi con schermi a diversa dimensione e densità di pixel (dpi). La scelta di quale icona di lancio mostrare al navigatore dopo l'installazione, dipendeva in passato da quello che si andava ad inserire nelle diverse cartelle drawable dell'applicazione. In sostanza un dispositivo dotato di uno schermo di larghe dimensioni (es. 7 pollici) e con densità di pixel alta (hdpi), con buona probabilità, andava a prelevare le immagini e l'icona di lancio dalla cartella drawable-hdpi
Con l'avvento della versione 4.3 di Android, è diventata prassi comune, trasferire tutte le icone di lancio, all'interno delle cartelle mipmap, suddivise anch'esse in base alla densità di pixel. Questo perchè alcuni dispositivi, invece di mostrare l'icona di lancio alla dimensione stabilita per quella dimensione e densità, mostrano un'immagine di dimensione più grande, quindi in assenza di questa, sono costretti ad individuare risorse alternative andando a ridimensionare (ingrandire) quella inserita nella cartella drawable specificata per quella densità e dimensione o per quella più adatta disponibile.
Adeguare progetti creati con solo la cartella drawable
Per poter adeguare allora progetti creati in precedenza alla versione 4.3, è necessario aggiornare la struttura di cartelle, aggiungendo le cartelle mipmap alle diverse densità. All'interno di ciascuna di queste poi, dovrai trasferire le icone di lancio dell'applicazione, precedentemente memorizzate all'interno delle diverse cartelle drawable.
NB: Devi trasferire solo le icone di lancio e non tutte le immagini.
In realtà potrebbe bastare inserire solo la cartella mipmap-xxxhdpi, con la relativa icona di lancio, in modo che, se il dispositivo ha elevate densità, venga scelta questa icona, altrimenti la si ridimensiona rimpicciolendola, quindi perdendo meno in qualità, rispetto all'operazione opposta fatta su un'icona più piccola.
Un punto di partenza allora è il servizio visto all'inizio, Android Assets Studio, che ti permette, partendo dall'icona che vorresti usare per la tua applicazione, a dimensione per esempio di 512 px, di creare N versioni dell'icona di lancio, adatta per ogni densità. La struttura che verrà generata è simile a quella di figura qui sotto:
Le corrispondenti misure in css pixel saranno:
mipmap-mdpi/ic_launcher.png (48x48 pixels) mipmap-hdpi/ic_launcher.png (72x72) mipmap-xhdpi/ic_launcher.png (96x96) mipmap-xxhdpi/ic_launcher.png (144x144) mipmap-xxxhdpi/ic_launcher.png (192x192)
Aggiungere queste cartelle non basta, perchè devi anche andate a modificare il file androidmanifest.xml, in modo che vada a prelevare le icone di lancio, dalle nuove cartelle.
android:icon="@mipmap/ic_launcher"
2024-11-21 Tipo/Autore: Davide Copelli {ing} Pubblicato da: CorsoAndroid.it