Bildgröße (drawable-hdpi / ldpi / mdpi / xhdpi)

70

Studiere Android, jetzt habe ich einige Bilder, die ich in zeichnbare Verzeichnisse (hdpi / ldpi / mdpi / xhdpi) einfügen kann. Ich lese viel, aber ich verstehe es wieder nicht. Welche Größe sollte ein Bild für jedes Verzeichnis haben?

Max Asura
quelle

Antworten:

146

Hoffe das wird helfen ...

mdpi ist die Referenzdichte - das heißt, 1 px auf einer mdpi-Anzeige entspricht 1 Dip. Das Verhältnis für die Skalierung von Assets ist:

ldpi | mdpi | hdpi | xhdpi | xxhdpi | xxxhdpi
0.75 | 1    | 1.5  | 2     | 3      | 4

Sie müssen sich zwar nicht wirklich um tvdpi kümmern, es sei denn, Sie entwickeln speziell für Google TV oder das ursprüngliche Nexus 7 - aber selbst Google empfiehlt, einfach HDPI-Assets zu verwenden. Sie müssen sich wahrscheinlich auch nicht um xxhdpi kümmern (obwohl es nie weh tut und zumindest das Startsymbol bei xxhdpi bereitgestellt werden sollte), und xxxhdpi ist derzeit nur eine Konstante im Quellcode (keine Geräte verwenden es und tun es auch nicht Ich erwarte es für eine Weile, wenn überhaupt), also ist es sicher, es auch zu ignorieren.

Wenn Sie ein 48-Dip-Bild erstellen und eine Auflösung von bis zu xhdpi unterstützen möchten, sollten Sie mit einem 96px-Bild beginnen (144px, wenn Sie native Assets für xxhdpi wünschen) und die folgenden Bilder für die Dichten erstellen:

ldpi    | mdpi    | hdpi    | xhdpi     | xxhdpi    | xxxhdpi
36 x 36 | 48 x 48 | 72 x 72 | 96 x 96   | 144 x 144 | 192 x 192

Und diese sollten auf jedem Gerät ungefähr gleich groß angezeigt werden, vorausgesetzt, Sie haben sie in dichtespezifischen Ordnern abgelegt (z. B. drawable-xhdpi, drawable-hdpi usw.).

Als Referenz sind die Pixeldichten für diese:

ldpi  | mdpi  | hdpi  | xhdpi  | xxhdpi  | xxxhdpi
120   | 160   | 240   | 320    | 480     | 640
Krushna Chulet
quelle
43
MDPI - 32px
HDPI - 48px
XHDPI- 64px

Dieser Spickzettel könnte für Sie nützlich sein. schau dir das Bild an :-)

Bild

Rafique Mohammed
quelle
1
Das Bild, das Sie geteilt haben, ist fantastisch! Vielen Dank! Ich habe nach einer guten Erklärung für die Größe gesucht und jetzt ist meine Suche beendet.
LargeGlasses
"Abstand zwischen Elementen = 8dp" irgendeine offizielle Quelle / Link?
Yousha Aleayoub
1
Danke @Rafique, aber ich bin verwirrt über die Dimensionen der anderen Symbole.
Francis Rodrigues
14

Ich habe bereits eine vollständige Erklärung hier gepostet

Grundsätzlich lauten die allgemeinen Richtlinien für das Entwerfen von Bildern:

ldpi is 0.75x dimensions of mdpi
hdpi is 1.5x dimensions of mdpi
xhdpi is 2x dimensinons of mdpi

Normalerweise entwerfe ich mdpi-Bilder für einen 320x480-Bildschirm und multipliziere dann die Abmessungen gemäß den obigen Regeln, um Bilder für andere Auflösungen zu erhalten.

Eine ausführlichere Antwort finden Sie in der vollständigen Erklärung.

Anup Cowkur
quelle
Möglicher Dup Ihrer eigenen Antwort
wtsang02
1
Ich denke, Ihr Konzept von "Brief" ist anders als meins. Dies ist eine umfassende Antwort und gut gemacht. Tolle Erklärung (dieses Konzept ist schwer!).
Booger
@ wtsang02 Es ist ein Dup. Das OP scheint neu zu sein, daher dachte ich, ich würde es der Einfachheit halber erneut veröffentlichen.
Anup Cowkur
1
@ Anup Cowkur danke für die Antwort! Eine Frage: Wenn ich ein Quellbild habe (dh 1600x960 Größe 47,3 KB), welche Größe sollte es auf mdpi setzen müssen?
Max Asura
1
@ Barriusius ja. xxhdpi ist 480dp, was 3x von mdpi entspricht.
Anup Cowkur
6

Siehe das Bild als Referenz: - (Soruce: - Android Studio -Image Assets Option und Android Office Site )

Geben Sie hier die Bildbeschreibung ein

pravingaikwad07
quelle
1
Danke @pravin, aber ich bin verwirrt über die Dimensionen der anderen Symbole.
Francis Rodrigues
4

Tablets unterstützt tvdpi und für diesen Skalierungsfaktor beträgt das 1,33-fache der Abmessungen mittlerer dpi

    ldpi | mdpi | tvdpi | hdpi | xhdpi | xxhdpi | xxxhdpi
    0.75 | 1    | 1.33  | 1.5  | 2     | 3      | 4

Dies bedeutet, dass Sie beim Generieren eines 400x400-Images für xxxhdpi-Geräte dieselbe Ressource in 300x300 für xxhdpi, 200x200 für xhdpi, 133x133 für tvdpi, 150x150 für hdpi, 100x100 für mdpi und 75x75 für ldpi-Geräte generieren sollten

Gorav Sharma
quelle
3

niedrige dpi ist 0,75x Abmessungen von mittleren dpi

Hohe dpi sind 1,5-fache Abmessungen von mittlerer dpi

extra hohe dpi sind 2x dimensionale mittlere dpi

Es wird empfohlen, alle Bilder im vektorbasierten Format zu erstellen, damit Sie sie mit einer Vektordesign-Software wie Illustrator usw. problemlos in der Größe ändern können .

ismet krlic
quelle
Wenn Sie Vektor verwenden, müssen Sie sich immer noch die Bitmap-Ausgabe ansehen und sie wahrscheinlich optimieren, damit Sie keine unscharfen Kanten erhalten, wenn Sie scharfe benötigen! (z. B. könnte die Kante einer Schaltfläche eine Pixelgrenze treffen und bei 1x schön scharf sein, aber die Kante liegt zwischen zwei Pixeln bei 0,75X bei 50% und sieht trüb aus). Persönlich verwende ich gerne eine Bitmap mit 2x, um sicherzustellen, dass alle Kanten, die ich scharf haben möchte, auf einem Vielfachen von 8 Pixel liegen (Sie können in Photoshop ein Raster hinzufügen), und skalieren Sie das Bild dann auf 0,75x, 1x und 1,5x (0,75) x hat alle 3 Pixel scharfe Kanten, 1x verwendet 4 Pixel und 1,5x verwendet 6 Pixel.
Gabe
0

Sie können Android Asset in Android Studio verwenden, und Android Asset gibt Ihnen ein Bild in dieser Größe als Zeichenmaterial und die Anwendung verwendet automatisch die Größe basierend auf dem Bildschirm des Geräts oder der Emulation


quelle
0

Nicht nur Tab-Symbole, Benachrichtigung und Launcher leben eine App. Ich war verwirrt über die Größe der anderen Symbole, die für verschiedene Situationen in der App verwendet wurden.

Ich verwende 32px mdpi-Dimensionen (Aktionsleistensymbole) und kann nicht sagen, ob dies korrekt wäre.

mdpi 32px

Francis Rodrigues
quelle