Seit Android 4.3 (Jelly Bean) können wir jetzt die res/mipmap
-Ordner verwenden, um "mipmap"-Bilder zu speichern.
Zum Beispiel speichert Chrome für Android seine Symbole in diesen Ordnern anstelle der normaleren res/drawable
-Ordner.
Wie unterscheiden sich diese mipmap-Bilder von den anderen vertrauten drawable-Bildern?
Ich sehe, dass wir in meinem Manifest den @mipmap/
-Qualifier verwenden, anstatt @drawable/
, was angesichts des Namens des Ressourcenordners Sinn macht:
Referenzen:
Das Dokument zu den Android 4.3 APIs sagt folgendes:
Die Verwendung eines Mipmap als Quelle für Ihr Bitmap oder Drawable ist eine einfache Möglichkeit, ein qualitativ hochwertiges Bild und verschiedene Bildskalen bereitzustellen, was besonders nützlich sein kann, wenn Sie erwarten, dass Ihr Bild während einer Animation skaliert wird.
Android 4.2 (API-Level 17) fügte Unterstützung für Mipmaps in der Bitmap-Klasse hinzu - Android tauscht die Mip-Bilder in Ihrer Bitmap aus, wenn Sie eine Mipmap-Quelle bereitgestellt haben und setHasMipMap() aktiviert haben. Jetzt können Sie in Android 4.3 auch Mipmaps für ein BitmapDrawable-Objekt aktivieren, indem Sie ein Mipmap-Asset bereitstellen und das android:mipMap-Attribut in einer Bitmap-Ressourcendatei setzen oder hasMipMap() aufrufen.
Ich sehe dort nichts, was mir hilft, das zu verstehen.
XML-Bitmap-Ressourcen haben eine android:mipMap
-Eigenschaft:
Boolean. Aktiviert oder deaktiviert den Mipmap-Hinweis. Weitere Informationen finden Sie unter setHasMipMap(). Der Standardwert ist falsch.
Dies gilt meiner Meinung nach nicht für Launcher-Symbole.
Die Frage wurde in der Google Groups (Der Zweck des Ressourcennamens "mipmap" ?!) gestellt, auf die Romain Guy antwortete:
Es ist nützlich, ein Bild in einer größeren Auflösung bereitzustellen, das normalerweise berechnet würde (beispielsweise möchte der Launcher auf einem mdpi-Gerät das größere hdpi-Symbol anzeigen, um große App-Verknüpfungen anzuzeigen.)
Ich habe das Gefühl, dass das fast Sinn macht, aber nicht ganz.
Ich neige immer noch zu Randys Sugiantos Nachfrage:
Was sind die Vorteile davon? Gibt es eine Anleitung zum Verwenden von Mipmaps, möglicherweise für bessere Launcher-Symbole?
Natürlich hat Wikipedia eine Seite für "Mipmap", die sich auf eine ältere Technik bezieht, die 1983 erfunden wurde und mit der aktuellen Android-Implementierung nicht ganz in Verbindung zu bringen ist.
Sollten wir heute alle unsere App-Symbole in res/mipmap
-Ordnern speichern und was sind die Richtlinien für diese Mipmap-Bilder?
Aktualisierung #1
Hier ist ein Blog-Beitrag, der versucht, es ein wenig zu erklären.
Aber das Bild, das in diesem Blog-Beitrag verwendet wird, zeigt, was wie eine Datei mit vielen Logos aussieht. Das ist nicht das, was ich im Mipmap-Ordner von Chrome sehe.
Im mipmap-hdpi
-Ordner von Chrome befinden sich drei Bilder. Eins ist das Chrome-Logo, alleine.
Seltsamerweise ist es 72x72, nicht 48x48, was ich erwarten würde zu sehen.
Vielleicht ist das alles, was es dazu gibt - wir müssen einfach größere Symbole in den Mipmap-Ordnern aufbewahren?
Aktualisierung #2
Der Blog-Beitrag der Android-Entwickler vom 23.10.2014 bestätigt erneut die Idee, die mipmap
-Ordner für Anwendungssymbole zu verwenden:
Bei der Diskussion über die Bildschirmdichte des Nexus 6 schreibt der Autor:
Es ist bewährte Praxis, Ihre App-Symbole in den mipmap-Ordnern (nicht den drawable-Ordnern) zu platzieren, da sie in Auflösungen verwendet werden, die sich von der aktuellen Dichte des Geräts unterscheiden. Zum Beispiel kann ein xxxhdpi-App-Symbol auf dem Launcher für ein xxhdpi-Gerät verwendet werden.
Aktualisierung #3
Beachten Sie, dass Android Studio die ic_launcher.png
-Symbole in den mipmap...
-Ordnern erstellt, anstatt in den drawable...
-Ordnern, in denen Eclipse sie zu erstellen pflegte.