Da Android 4.3 (Jelly Bean) ora possiamo utilizzare le res/mipmap
cartelle per archiviare immagini "mipmap".
Ad esempio, Chrome per Android memorizza le sue icone in queste cartelle anziché nelle cartelle più normali res/drawable
.
In che modo queste immagini mipmap sono diverse dalle altre immagini disegnabili familiari?
Vedo che nel mio manifest, usiamo il @mipmap/
qualificatore, invece di @drawable/
, che ha senso dato il nome della cartella delle risorse:
<activity
android:name=".MipmapDemp"
android:icon="@mipmap/ic_launcher" />
Riferimenti:
Il documento API 4.3 di Android ha il seguente da dire:
L'uso di una mipmap come sorgente della bitmap o del disegno è un modo semplice per fornire un'immagine di qualità e varie scale di immagini, che può essere particolarmente utile se si prevede che l'immagine venga ridimensionata durante un'animazione.
Android 4.2 (livello API 17) ha aggiunto il supporto per le mipmap nella classe Bitmap: Android scambia le immagini mip nella tua Bitmap quando hai fornito una fonte mipmap e hai abilitato setHasMipMap (). Ora in Android 4.3, puoi abilitare le mipmap anche per un oggetto BitmapDrawable, fornendo un asset mipmap e impostando l'attributo android: mipMap in un file di risorse bitmap o chiamando hasMipMap ().
Non vedo niente lì dentro che mi aiuti a capire.
Le risorse Bitmap XML hanno una android:mipMap
proprietà:
Booleano. Abilita o disabilita il suggerimento mipmap. Vedere setHasMipMap () per ulteriori informazioni. Il valore predefinito è falso.
Questo non si applica alle icone di avvio per quanto posso vedere.
La domanda è stata sollevata su Google Gruppi ( lo scopo del nome della risorsa "mipmap" ?! ), a cui Romain Guy ha risposto:
È utile fornire un'immagine con una risoluzione maggiore che verrebbe normalmente calcolata (ad esempio, su un dispositivo mdpi, Launcher potrebbe voler visualizzare l'icona di HDPI più grande per visualizzare scorciatoie di app di grandi dimensioni).
Sento che questo ha quasi senso, ma non del tutto.
Sono ancora propenso a seguire il seguito di Randy Sugianto:
Quali sono i vantaggi di questo? C'è qualche guida su come usare le mipmap, probabilmente per le migliori icone di avvio?
Naturalmente, Wikipedia ha una pagina per "Mipmap" , che si riferisce a una tecnica più antica inventata nel 1983, che non riesco a mettere in relazione con l'attuale implementazione di Android.
Oggi dovremmo archiviare tutte le icone delleres/mipmap
nostre app in cartelle e quali sono le linee guida per queste immagini mipmap?
Aggiornamento n. 1
Ecco un post sul blog che prova a spiegarlo un po '.
Ma l'immagine usata in quel post sul blog mostra quello che sembra un file con molti loghi. Questo non è quello che vedo nella cartella mipmap di Chrome.
La mipmap-hdpi
cartella di Chrome contiene tre immagini. Uno è il logo Chrome, da solo.
Stranamente, è 72x72, non 48x48 che mi aspetterei di vedere.
Forse è tutto ciò che c'è da fare: dobbiamo solo mantenere icone più grandi nelle cartelle mipmap?
Aggiornamento n. 2
Il post sul blog degli sviluppatori Android del 23/10/2014 conferma ancora l'idea di utilizzare le mipmap
cartelle per le icone delle applicazioni:
Quando parla della densità dello schermo del Nexus 6, l'autore scrive:
È consigliabile posizionare le icone delle tue app in cartelle mipmap (non cartelle disegnabili) perché vengono utilizzate a risoluzioni diverse dalla densità corrente del dispositivo. Ad esempio, un'icona dell'app xxxhdpi può essere utilizzata nel programma di avvio per un dispositivo xxhdpi.
Aggiornamento n. 3
Nota che Android Studio crea le ic_launcher.png
icone nelle mipmap...
cartelle anziché nelle drawable...
cartelle in cui Eclipse ha usato per crearle.