![]()
Un'icona adattiva, o AdaptiveIconDrawable, può essere visualizzata in modo diverso
a seconda delle funzionalità del singolo dispositivo e dei temi dell'utente. Le icone adattive vengono utilizzate principalmente dal launcher nella schermata Home, ma possono essere utilizzate anche nelle scorciatoie, nell'app Impostazioni, nelle finestre di dialogo di condivisione e nella schermata di panoramica. Le icone adattive vengono utilizzate in tutti i fattori di forma Android.
A differenza delle immagini bitmap, le icone adattive possono adattarsi a diversi casi d'uso:
Forme diverse: un'icona adattiva può mostrare una varietà di forme su diversi modelli di dispositivi. Ad esempio, può mostrare una forma circolare su un dispositivo OEM e una forma a squircle (una forma tra un quadrato e un cerchio) su un altro dispositivo. Ogni OEM del dispositivo deve fornire una maschera che il sistema utilizza per eseguire il rendering di tutte le icone adattive con la stessa forma.
Figura 1. Le icone adattive supportano una varietà di maschere, che variano da un dispositivo all'altro. Effetti visivi: un'icona adattiva supporta una varietà di effetti visivi coinvolgenti, che vengono visualizzati quando gli utenti posizionano o spostano l'icona nella schermata Home.
Figura 2. Esempi di effetti visivi visualizzati da un'icona adattiva. Temi utente: a partire da Android 13 (livello API 33), gli utenti possono applicare temi alle proprie icone adattive. Se un utente attiva le icone delle app a tema nelle impostazioni di sistema e il launcher supporta questa funzionalità, il sistema utilizza la colorazione dello sfondo e del tema scelti dall'utente per determinare il colore della tinta delle icone delle app che hanno un livello
monochromenella loro icona adattiva. A partire da Android 16 QPR 2, Android applica automaticamente i temi alle icone delle app che non forniscono le proprie.
Figura 3. Icone adattive che ereditano lo sfondo e i temi dell'utente. Nei seguenti scenari, la schermata Home non mostra l'icona dell'app a tema, ma mostra l'icona dell'app adattiva o standard:
- Se l'utente non attiva le icone delle app a tema.
- Se la tua app non fornisce un'icona dell'app monocromatica e il dispositivo dell'utente esegue una versione di Android precedente ad Android 16 QPR 2.
- Se il launcher non supporta le icone delle app a tema.
Progettare icone adattive
Per assicurarti che la tua icona adattiva supporti forme, effetti visivi e temi utente diversi, il design deve soddisfare i seguenti requisiti:
Devi fornire due livelli per la versione a colori dell'icona: uno per il primo piano e uno per lo sfondo. I livelli possono essere vettoriali o bitmap, anche se sono preferibili i vettori.
Figura 4. Icone adattive definite utilizzando i livelli di primo piano e sfondo. La area di sicurezza 66x66 raffigurata è l'area che non viene mai ritagliata da una maschera sagomata definita da un OEM.
Figura 5. Un esempio di come appaiono insieme i livelli di primo piano e sfondo con una maschera circolare applicata. Se vuoi supportare i temi utente delle icone delle app, fornisci un singolo livello per la versione monocromatica dell'icona.
Figura 6. Un livello di icona monocromatico (a sinistra) con esempi di anteprime a colori (a destra). Imposta le dimensioni di tutti i livelli su 108x108 dp.
Utilizza icone con bordi puliti. I livelli non devono avere maschere o ombreggiature di sfondo attorno al contorno dell'icona.
Utilizza un logo di almeno 48x48 dp. Non deve superare i 66x66 dp, perché i 66x66 dp interni dell'icona vengono visualizzati all'interno della finestra di visualizzazione mascherata.
I 18 dp esterni su ciascuno dei quattro lati dei livelli sono riservati alla mascheratura e alla creazione di effetti visivi come la parallasse o la pulsazione.
Per scoprire come creare icone adattive utilizzando Android Studio, consulta il modello Figma per le icone delle app Android o la documentazione di Android Studio per la creazione di icone del launcher. Leggi anche il post del blog Designing Adaptive Icons.
Aggiungere l'icona adattiva all'app
Le icone adattive, proprio come le icone non adattive, vengono specificate utilizzando l'
android:icon attributo nel manifest dell'app.
Un attributo facoltativo, android:roundIcon, viene utilizzato dai launcher che rappresentano le app con icone circolari e può essere utile se l'icona dell'app include uno sfondo circolare come parte fondamentale del suo design. Questi launcher sono tenuti a generare le icone delle app applicando una maschera circolare a android:roundIcon, e questa garanzia potrebbe consentirti di ottimizzare l'aspetto dell'icona dell'app, ad esempio ingrandendo leggermente il logo e assicurandoti che, una volta ritagliato, lo sfondo circolare sia a pagina intera.
Il seguente snippet di codice illustra entrambi questi attributi, ma la maggior parte delle app specifica solo android:icon:
<application ... android:icon="@mipmap/ic_launcher" android:roundIcon="@mipmap/ic_launcher_round" ...> </application>
Salva quindi l'icona adattiva in res/mipmap-anydpi-v26/ic_launcher.xml. Utilizza
l'elemento <adaptive-icon> per definire le risorse dei livelli di primo piano, sfondo e
monocromatico per le tue icone. Gli elementi interni <foreground>,
<background> e <monochrome> supportano sia
le immagini vettoriali sia quelle bitmap.
Il seguente esempio mostra come definire <foreground>, <background> e
<monochrome> elementi all'interno di <adaptive-icon>:
<?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" /> <monochrome android:drawable="@drawable/ic_launcher_foreground" /> </adaptive-icon> ...
I livelli di primo piano e monocromatico utilizzano la stessa risorsa disegnabile. Tuttavia, se necessario, puoi creare risorse disegnabili separate per ogni livello.
Puoi anche definire le risorse disegnabili come elementi inlining all'interno degli elementi
<foreground>, <background>, e <monochrome>. Il seguente snippet mostra un esempio di come farlo con la risorsa disegnabile di primo piano.
<?xml version="1.0" encoding="utf-8"?> ... <foreground> <inset android:insetBottom="18dp" android:insetLeft="18dp" android:insetRight="18dp" android:insetTop="18dp"> <shape android:shape="oval"> <solid android:color="#0000FF" /> </shape> </inset> </foreground> ...
Se vuoi applicare la stessa maschera ed effetto visivo alle scorciatoie come alle normali icone adattive, utilizza una delle seguenti tecniche:
- Per le scorciatoie statiche, utilizza l'elemento
<adaptive-icon>. - Per le scorciatoie dinamiche, chiama il
createWithAdaptiveBitmap()metodo quando le crei.
Per saperne di più sull'implementazione delle icone adattive, consulta Implementare icone adattive. Per saperne di più sulle scorciatoie, consulta Panoramica delle scorciatoie delle app.
Risorse aggiuntive
Per ulteriori informazioni sulla progettazione e l'implementazione delle icone adattive, consulta le seguenti risorse.
- Modello di pagina della community Figma
- Understanding Android Adaptive Icons
- Designing Adaptive Icons
- Implementing Adaptive Icons
- Create app icons in Android Studio
- Specifiche relative alla struttura delle icone Google Play