474 Stimmen

Mipmap-Zeichnungen für Symbole

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.

Chrome mipmap-hdpi icon.png

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.


4voto

Stev Punkte 41

Da ich nach einer klärenden Antwort gesucht habe, um den richtigen Typ für Benachrichtigungssymbole zu bestimmen, möchte ich diese klare Aussage zum Thema hinzufügen. Es stammt von http://developer.android.com/tools/help/image-asset-studio.html#saving

Hinweis: Launcher-Symbol Dateien befinden sich an einem anderen Ort als die anderen Symbole. Sie befinden sich im mipmap/-Ordner. Alle anderen Symbol-Dateien befinden sich im drawable/-Ordner Ihres Projekts.

3voto

Hayk Nahapetyan Punkte 4312

Beim Arbeiten mit Bildern in Android gibt es zwei Fälle, mit denen Sie umgehen müssen:

  1. Sie möchten ein Bild für die Bildschirmdichte Ihres Geräts laden und es "wie es ist" verwenden, ohne seine tatsächliche Größe zu ändern. In diesem Fall sollten Sie mit Drawables arbeiten und Android liefert Ihnen das am besten geeignete Bild.
  2. Sie möchten ein Bild für die Bildschirmdichte Ihres Geräts laden, aber dieses Bild wird skaliert vergrößert oder verkleinert. Beispielsweise ist dies erforderlich, wenn Sie ein größeres Startsymbol anzeigen möchten oder eine Animation haben, die die Größe des Bildes vergrößert. In solchen Fällen sollten Sie Ihr Bild in den Mipmap-Ordner legen, um die beste Bildqualität sicherzustellen. Android wird dann versuchen, das Bild aus einem Ordner mit höherer Dichte auszuwählen, anstatt es zu skalieren.

DAHER

Die Faustregel, um zu entscheiden, wo Sie Ihr Bild platzieren sollen, lautet:

  1. Startsymbole gehören immer in den Mipmap-Ordner.

  2. Bilder, die häufig skaliert werden (oder extrem verkleinert) und deren Qualität für die App entscheidend ist, gehören ebenfalls in den Mipmap-Ordner.

  3. Alle anderen Bilder sind normale Drawables.

Zitat aus diesem Artikel.

2voto

Fartab Punkte 3635

Beim Erstellen separater APKs für verschiedene Dichten werden die Drawable-Ordner für andere Dichten entfernt. Dies kann dazu führen, dass die Symbole auf Geräten, die Launcher-Symbole mit höherer Dichte verwenden, unscharf erscheinen. Da die Mipmap-Ordner nicht entfernt werden, ist es immer am besten, sie für die Einbindung der Launcher-Symbole zu verwenden.

2voto

Bharat Lalwani Punkte 740

Wenn wir separate APKs für verschiedene Dichten erstellen, werden für die APK der bestimmten Dichte die Drawable-Ordner für andere Dichten entfernt. Dies führt dazu, dass die Symbole auf Geräten, die Launcher-Symbole mit höherer Dichte verwenden, verschwommen erscheinen. Da Mipmap-Ordner nicht entfernt werden, ist es immer am besten, sie für die Aufnahme der Launcher-Symbole zu verwenden.

1voto

Piyush Punkte 5377
res/
mipmap-mdpi/ic_launcher.png (48x48 Pixel)
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 für App-Symbol für Launcher

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/

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X