Ich muss einige Zweifel an den Bildressourcen für meine App klären.
wenn ich in einer XML-Datei angibe, dass die Höhe von etwas [Bildansicht] 50 Dip-Höhe beträgt
Welchen Bildschirmtyp soll ich aus dem Ressourcenordner auswählen?
drawable, hdpi, ldpi, mdpi, xhdpi,
um das Bild mit einer Höhe von 50 px zu haben,
und wie hoch ist der Prozentsatz für größere, kleinere Bilder im Vergleich zum Basisbild?
Wie in iOS ist @ 2x buchstäblich 2-mal so groß wie das Bild, und Sie sagen programmatisch die normale Größe.
Vielen Dank!
android
android-resources
android-image
android-screen-support
manuelBetancurt
quelle
quelle
Antworten:
mdpi
ist die Referenzdichte - das heißt, 1 px auf einemmdpi
Display entspricht 1 Dip. Das Verhältnis für die Skalierung von Assets ist:Sie müssen sich zwar keine Sorgen machen, es
tvdpi
sei denn, Sie entwickeln speziell für Google TV oder das ursprüngliche Nexus 7 - aber selbst Google empfiehlt, einfachhdpi
Assets zu verwenden.Wenn Sie ein 48dip-Image erstellen und bis zu unterstützen
xxhdpi resolution
möchten, sollten Sie mit einem 144px-Image beginnen (192px, wenn Sie native Assets für xxxhdpi möchten) und die folgenden Images für die Dichten erstellen:Und diese sollten auf jedem Gerät in etwa die gleiche Größe angezeigt werden , sofern Sie diese in der Dichte spezifische Ordner platziert haben (zB
drawable-xhdpi
,drawable-hdpi
usw.)Als Referenz sind die Pixeldichten für diese:
quelle
Basierend auf der Antwort von kcoppock habe ich das folgende Shell-Skript erstellt, um die Größe aller Bilder automatisch auf die richtige Größe zu ändern und sie in die entsprechenden Android-Zeichnungs- * - Ordner zu kopieren!
Erstellen Sie ein Shell-Skript und fügen Sie den folgenden Code ein:
createAndroidImages.sh
Legen Sie Ihr Skript in einem Ordner und Ihre Originalbilder in einem Unterordner ab, z.
Führen Sie das Shell-Skript im Terminal aus:
sh createAndroidImages.sh
So kopieren Sie die erstellten Bilder direkt in Ihr Android Studio-Projekt:
Du bist fertig! Hoffe das hilft jemandem!
PS Bitte beachten Sie, dass die Originalbilder mindestens die vierfache Breite in Pixel haben sollten als die gewünschte Breite in dpi (z. B. 4 (Faktor xxxhdpi) * 30dpi => 120px), um optimale Ergebnisse zu erzielen.
quelle
kcoppock hat großartige Arbeit geleistet, um die Bildschirmdichten der Andoriden zu erklären. Ich möchte nur noch einen Punkt zur ursprünglichen Frage hinzufügen.
Das Android Tablet Launcher-Symbol verwendet einen Dichte-Bucket.
Laut dem Google+ Beitrag von Googles Entwickler Nick Butcher
Quelle hier finden
quelle
Hier sind meine Berechnungen zum Hochskalieren und Verkleinern von Bildern für Android-
ldpi (120 dpi, Bildschirm mit niedriger Dichte) - 36 x 36 x (0,19) (1)
mdpi (160 dpi, Bildschirm mittlerer Dichte) - 48 x 48 x (0,25) (1,33)
HDPI (240 dpi, Bildschirm mit hoher Dichte) - 72 x 72 Pixel (0,38) (2)
xhdpi (320 dpi, Bildschirm mit besonders hoher Dichte) - 96 x 96 x (0,5) (2,67)
xxhdpi (480 dpi, Bildschirm mit besonders hoher Dichte) - 144 x 144 Pixel (0,75) (4)
xxxhdpi (640 dpi, Bildschirm mit extra-extra-extra-hoher Dichte) - 192px x 192px (1,0) (5,33)
Mein kurzer Artikel ist hilfreich, um Bildressourcen mit imagemagick zu erstellen, wenn mehrere Bilder vorhanden sind.
quelle