474 votes

Dessinables Mipmap pour les icônes

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.

Chrome mipmap-hdpi icon.png

É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.


4voto

Stev Points 41

Comme je cherchais une réponse claire à ce sujet pour déterminer le bon type d'icônes de notification, j'aimerais ajouter cette déclaration claire au sujet. Elle provient de http://developer.Android.com/tools/help/image-asset-studio.html#saving

Remarque : Les fichiers de l'icône du lanceur se trouvent à un endroit différent de celui des autres icônes. autres icônes. Ils sont situés dans le dossier mipmap/. Tous les autres fichiers d'icônes se trouvent dans le dossier drawable/ de votre projet.

3voto

Hayk Nahapetyan Points 966

Il existe deux cas de figure lorsque vous travaillez avec des images dans Android :

  1. Vous voulez charger une image pour la densité de votre appareil et vous allez l'utiliser "telle quelle", sans modifier sa taille réelle. Dans ce cas, vous devez travailler avec des éléments à dessiner et Android vous donnera la meilleure image.
  2. Vous voulez charger une image pour la densité de votre appareil, mais cette image va être mise à l'échelle ou réduite. Par exemple, cela est nécessaire lorsque vous voulez afficher une icône de lancement plus grande, ou que vous avez une animation, qui augmente la taille de l'image. Dans de tels cas, pour assurer la meilleure qualité d'image, vous devez placer votre image dans le dossier mipmap. Ce qu'Android va faire, il essaiera de prendre l'image à partir d'un seau de plus haute densité au lieu de de la mettre à l'échelle.

SO

Ainsi, la règle empirique pour décider où placer votre image serait serait :

  1. Les icônes du lanceur vont toujours dans le dossier mipmap.

  2. Les images, qui sont souvent mises à l'échelle (ou extrêmement réduites) et dont la qualité est critique pour l'application, vont dans le dossier mipmap également. également dans le dossier mipmap.

  3. Toutes les autres images sont des images habituelles.

Citation de este article.

2voto

Fartab Points 762

Lorsque l'on construit des apks séparés pour différentes densités, les dossiers dessinables pour les autres densités sont supprimés. Cela rendra les icônes floues sur les appareils qui utilisent des icônes de lancement de densité supérieure. Comme les dossiers mipmap ne sont pas supprimés, il est toujours préférable de les utiliser pour inclure les icônes du lanceur.

1voto

Piyush Points 350
res/
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)

MipMap pour l'icône de l'application pour le lanceur

http://Android-developers.blogspot.co.uk/2014/10/getting-your-apps-ready-for-nexus-6-and.html

https://androidbycode.wordpress.com/2015/02/14/goodbye-launcher-drawables-hello-mipmaps/

1voto

Evan Points 168

Si vous créez un APK pour une résolution d'écran cible comme HDPI, l'outil d'empaquetage des actifs Android, AAPT, peut supprimer les éléments dessinés pour les autres résolutions dont vous n'avez pas besoin, mais s'ils se trouvent dans le dossier mipmap, ces actifs resteront dans l'APK, quelle que soit la résolution cible.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X