La versione 8 di Android (API di livello 26) ha introdotto, tra le altre cose, le Adaptive Icons, un nuovo modo di fornire icone per l'app in grado di adattarsi più facilmente al dispositivo e di supportare diversi effetti visivi in risposta alle azioni dell'utente.
Icone di questo genere vengono conservate, come di consueto, all'interno della cartella di risorse
mipmap, ma ciò che fa la differenza è il modo in cui vengono progettate. Queste le caratteristiche:
- ogni icona è costituita da due livelli, uno in foreground e uno in background;
- la dimensione di entrambi i livelli è di 108dp, sia in altezza sia in larghezza;
- 18dp di ognuno dei quattro lati viene riservato per effetti visivi dell'icona come parallasse e risposta alla pressione.
Come creare icone adattive
Utilizzando Adaptive Icons dovremo anche provvedere alternative per supportare le versioni del sistema precedenti alle API 26, una sorta di modalità "legacy".
L'icona deve essere inserita nel file AndroidManifest.xml, all'interno del nodo <application>
:
<application
android:icon="@mipmap/ic_launcher"
android:roundIcon="@mipmap/ic_launcher_round"
...
...
>
Si noti che sono stati utilizzati due attributi: icon
roundIcon
mipmap
drawable
Si osservi in proposito che le risorse indicate sono in formato XML
PNG
nell'approccio in cui vengono coinvolte: le prime (quelle XML) rientrano nell'uso delle Adaptive Icons, utilizzato dalle API 26 a seguire, le seconde (file PNG) rispondono a esigenze di compatibilità con le versioni precedenti. Per avere conferma dell'adattabilità del nuovo approccio, è sufficiente notare che i file PNG esistono in versioni multiple
i file XML sono etichettati come anydpi-v26
Adaptive Icons in dettaglio
Entrando nei dettagli, i file ic_launcher.xml e ic_launcher_round.xml hanno il seguente contenuto:
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@drawable/ic_launcher_background" />
<foreground android:drawable="@drawable/ic_launcher_foreground" />
</adaptive-icon>
In realtà, essi sono un collegamento a ciò che troviamo tra le risorse drawable, le due immagini progettate in XML che costituiranno lo sfondo (background) e la parte frontale (foreground) dell'icona.
Le risorse da impiegare possono essere prodotte internamente ad Android Studio, che offre due strumenti, accessibili direttamente tramite menu: Image Asset e Vector Asset.
Con Image Asset icone material Icon type
Vector Asset è un altro strumento che aiuta a predisporre immagini ed icone partendo da material icon o da file locali in formato SVG o PSD. Grazie a questo tool avremo icone vettoriali pronte ad adattarsi ad ogni circostanza.
Si ricordi infine che con Image Asset e Vector Asset si potranno produrre, oltre alle icone per il launcher, anche altre di vario genere, da destinare a menu e notifiche.