Depuis Android 4.3 (Jelly Bean), nous pouvons désormais utiliser la fonction res/mipmap
des dossiers pour stocker les images "mipmap".
Par exemple, Chrome pour Android stocke ses icônes dans ces dossiers au lieu des dossiers habituels. res/drawable
les dossiers.
En quoi ces images mipmap sont-elles différentes des autres images dessinables familières ?
Je vois que dans mon manifeste, on utilise le @mipmap/
au lieu du qualificatif @drawable/
ce qui est logique compte tenu du nom du dossier de ressources :
<activity
android:name=".MipmapDemp"
android:icon="@mipmap/ic_launcher" />
Références :
El API d'Android 4.3 a déclaré ce qui suit :
L'utilisation d'un mipmap comme source de votre bitmap ou de votre drawable est une manière simple de fournir une image de qualité et diverses échelles d'image, ce qui peut être particulièrement utile si vous prévoyez que votre image sera mise à l'échelle au cours d'une animation.
Android 4.2 (niveau 17 de l'API) a ajouté le support des mipmaps dans la classe Bitmap Android échange les images mip dans votre Bitmap lorsque vous avez fourni une source mipmap et que vous avez activé setHasMipMap(). Maintenant, dans Android 4.3, vous pouvez également activer les mipmaps pour un objet BitmapDrawable, en fournissant une ressource mipmap et en définissant l'attribut Android:mipMap dans un fichier de ressources bitmap ou en appelant hasMipMap().
Je n'y vois rien qui m'aide à comprendre.
Ressources XML Bitmap ont un android:mipMap
propriété :
Booléen. Active ou désactive l'indice mipmap. Voir setHasMipMap() pour plus d'informations. plus d'informations. La valeur par défaut est false.
Pour autant que je sache, cela ne s'applique pas aux icônes du lanceur.
La question a été soulevée sur Google Groups ( A quoi sert le nom de ressource "mipmap" ? ! ), ce à quoi Romain Guy a répondu :
Il est utile de fournir une image à une résolution supérieure à celle qui serait qui serait normalement calculée (par exemple, sur un périphérique mdpi, Launcher pourrait vouloir l'icône hdpi plus grande pour afficher des raccourcis d'applications de grande taille).
J'ai l'impression que ça donne presque un sens à tout ça, mais pas tout à fait.
Je suis toujours enclin à aller avec le suivi de Randy Sugianto :
Quels en sont les avantages ? Existe-t-il un guide sur la façon d'utiliser mipmaps, probablement pour de meilleures icônes de lanceur ?
Bien sûr, Wikipédia a une page pour "Mipmap". qui fait référence à une technique plus ancienne inventée en 1983, que je n'arrive pas à relier à l'implémentation actuelle d'Android.
Devrions-nous stocker tous nos icônes d'application dans res/mipmap
dossiers de nos jours, et quelles sont les directives pour ces images mipmap ?
Mise à jour n° 1
Voici un article de blog qui tente de l'expliquer un peu.
Mais l'image utilisée dans cet article de blog montre ce qui ressemble à un fichier contenant plusieurs logos. Ce n'est pas ce que je vois dans le dossier mipmap de Chrome.
Chrome's mipmap-hdpi
contient trois images. L'une est le logo de Chrome, seul.
Étrangement, elle est de 72x72, et non de 48x48 comme je m'y attendais.
Peut-être que c'est tout ce qu'il y a à faire - nous devons juste garder des icônes plus grandes dans les dossiers mipmap ?
Mise à jour n°2
L'article du blog des développeurs Android du 23/10/2014 confirme à nouveau l'idée d'utiliser le mipmap
pour les icônes des applications :
En parlant de la densité de l'écran du Nexus 6, l'auteur écrit :
La meilleure pratique consiste à placer les icônes de vos applications dans les dossiers mipmap- (et non dans les dossiers drawable-). dossiers drawable-) car elles sont utilisées à des résolutions différentes de la la densité de courant de l'appareil. Par exemple, une icône d'application en xxxhdpi peut être être utilisée sur le lanceur pour un appareil xxhdpi.
Mise à jour n°3
Notez qu'Android Studio crée le ic_launcher.png
icônes dans le mipmap...
plutôt que les dossiers drawable...
dans lesquels Eclipse les a créés.