Android: Hintergrundbildgröße (in Pixel), die alle Geräte unterstützt


113

Ich erstelle eine Anwendung, die auf allen Android-Geräten ausgeführt wird. Ich möchte xhdpi-Grafiken für meine App erstellen. Meine App ist Vollbild. Ich bin verwirrt beim Erstellen von Grafiken. Kann mir jemand die besten Größen meines Hintergrundbildes in Pixel sagen?

Beispielsweise:

  • xhdpi: 720 x 1280 px
  • HDPI: 480 x 800 px
  • mdpi: 320 x 480 px
  • ldpi: 240 x 320 px

Schlagen Sie mir die besten Größen vor, die auf allen Geräten gut erscheinen. Weil meine Grafiken der Kern meiner App sind.

Ich möchte, dass jedes Gerät das beste Bild erhält, das es möchte. Android ist nicht an der Komprimierung oder Erweiterung des Bildes beteiligt.


3
Lesen Sie die Android-Unterstützung für Android-Dokumentationen mit mehreren Bildschirmen. Sie geben den Standard für die Benutzeroberfläche an
RajeshVijayakumar

Verwenden Sie diese eine Lösung, die für alle alten und neuen sowie für kommende Geräte am besten geeignet ist. stackoverflow.com/a/40255870/2489061
Umer

Antworten:


198

Im Folgenden sind die besten Abmessungen aufgeführt, damit die App auf allen Geräten ausgeführt werden kann. Um mehrere unterstützende Bildschirme zu verstehen, müssen Sie http://developer.android.com/guide/practices/screens_support.html lesen

xxxhdpi: 1280x1920 px
xxhdpi: 960x1600 px
xhdpi: 640x960 px
hdpi: 480x800 px
mdpi: 320x480 px
ldpi: 240x320 px

10
XX sollte 2x HDPI sein
LarryBud

1
interessant, Nexus 5 ist xxhdpi, aber es Bildschirmgröße ist 1080x1920
Roman

3
Das LG G3 hat eine Auflösung von 1440 x 2560 und verwendet xxxhdpi.
Roel

1
Das ist das Hauptproblem / die Hauptherausforderung bei Android. Es gibt keine festgelegte Größe für HDPI, XHDXI usw., da jeder Hersteller ein Telefon / Tablet unterschiedlicher Größe herstellen kann, im Gegensatz zu IOS, wo nur Apple es herstellt. Schauen Sie sich den Abschnitt über die Reichweite an: developer.android.com/guide/practices/…
toidiu

Verwenden Sie diese eine Lösung, die für alle alten und neuen sowie für kommende Geräte am besten geeignet ist. stackoverflow.com/a/40255870/2489061
Umer

63

Android-Gerätematrizen

                            ldpi     mdpi     hdpi    xhdpi    xxhdpi      xxxhdpi
Launcher And Home           36*36    48*48   72*72    96*96    144*144     192*192
Toolbar And Tab             24*24    32*32   48*48    64*64    96*96       128*128
Notification                18*18    24*24   36*36    48*48    72*72       96*96 
Background                 240*320  320*480 480*800  768*1280  1080 *1920  1440*2560 

(Für einen guten Ansatz minus Symbolleistengröße Aus der Gesamthöhe des Hintergrundbildschirms und dann Designgrafiken der Bildschirme)

Weitere Hilfe (Dieser Link enthält auch Tablets):

https://design.google.com/devices/

Android Native Icons (empfohlen) Sie können die Farbe dieser Symbole programmgesteuert ändern . https://design.google.com/icons/


Warum stimmen diese nicht mit den hier vorgeschlagenen Multiplikatoren überein? developer.android.com/training/multiscreen/screendensities#java
Ben


5

Ich habe mich im Internet nach korrekten Abmessungen für diese Dichten für quadratische Bilder umgesehen, konnte aber nichts Zuverlässiges finden.

Wenn es ein Trost ist, unter Bezugnahme auf die Antwort von Veerababu Medisetti, habe ich diese Dimensionen für QUADRATE verwendet :)

xxxhdpi: 1280x1280 px
xxhdpi: 960x960 px
xhdpi: 640x640 px
hdpi: 480x480 px
mdpi: 320x320 px
ldpi: 240x240 px

Verwenden Sie diese eine Lösung, die für alle alten und neuen sowie für kommende Geräte am besten geeignet ist. stackoverflow.com/a/40255870/2489061
Umer

4

Das GIMP-Tool ist genau das, was Sie benötigen, um Bilder für Geräte mit unterschiedlicher Pixelauflösung zu erstellen.

Folge diesen Schritten:

  1. Öffnen Sie das vorhandene Bild im GIMP-Tool.
  2. Gehen Sie zum Menü "Bild" und wählen Sie "Bild skalieren ...".
  3. Verwenden Sie die unten angegebene Pixelgröße:

    xxxhdpi: 1280 x 1920 px

    xxhdpi: 960 x 1600 px

    xhdpi: 640 x 960 px

    HDPI: 480 x 800 px

    mdpi: 320 x 480 px

    ldpi: 240 x 320 px

  4. Dann "Exportieren" Sie das Bild aus dem Menü "Datei".


3

Nach meinem Verständnis skaliert Android Ihr Bild automatisch auf die richtige Größe , wenn Sie ein ViewObjekt verwenden (wie z. B. android:windowBackground). Das Problem ist, dass zu viel Skalierung zu Artefakten (sowohl beim Hoch- als auch beim Abwärtsskalieren) und Unschärfe führen kann. Aufgrund der verschiedenen Auflösungen und Seitenverhältnisse auf dem Markt ist es unmöglich, "perfekte" Passungen für jeden Bildschirm zu erstellen. Sie können jedoch Ihr Bestes tun, um sicherzustellen, dass nur ein wenig Skalierung erforderlich ist, und so die unerwünschten Nebenwirkungen abmildern . Was ich also tun würde, ist:

  • Halten Sie das Skalierungsverhältnis 3: 4: 6: 8: 12: 16 zwischen den sechs verallgemeinerten Dichten (ldpi, mdpi, hdpi usw.) ein.
  • Sie sollten keine xxxhdpi-Elemente für Ihre UI-Elemente einschließen. Diese Auflösung dient nur zum Hochskalieren von Launcher-Symbolen (also nur zum Mipmap-Ordner). Sie sollten das xxxhdpi-Qualifikationsmerkmal nicht für andere UI-Elemente als das Launcher-Symbol verwenden. ... obwohl zB. Auf dem Samsung Edge 7 gibt der Anruf getDisplayMetrics().density4 (xxxhdpi) zurück, sodass diese Informationen möglicherweise veraltet sind.
  • Dann schauen Sie sich die neuen Telefonmodelle auf dem Markt an und finden Sie die repräsentativen. Angenommen, das neue Google-Pixel ist eine gute Darstellung eines Android-Telefons: Es hat eine Auflösung von 1080 x 1920 bei 441 dpi und eine Bildschirmgröße von 4,4 x 2,5 Zoll . Dann aus den Android-Entwicklerdokumenten :

    • ldpi (niedrig) ~ 120 dpi
    • mdpi (mittel) ~ 160 dpi
    • hdpi (hoch) ~ 240 dpi
    • xhdpi (extra hoch) ~ 320 dpi
    • xxhdpi (extra-extra-hoch) ~ 480dpi
    • xxxhdpi (extra-extra-extra-hoch) ~ 640dpi

    Dies entspricht einem xxhdpiBildschirm. Von hier aus konnte ich diese 1080 x 1920 um die obigen Verhältnisse (3: 4: 6: 8: 12) verkleinern.

  • Ich könnte auch anerkennen, dass Downsampling im Allgemeinen eine einfache Möglichkeit zur Skalierung ist und daher möglicherweise leicht übergroße Bitmaps in meiner apk enthalten sein möchte (Hinweis: höherer Speicherverbrauch). Unter der Annahme, dass die Breite und Höhe des Pixelbildschirms repräsentativ sind, würde ich die 1080 x 1920 um den Faktor 480/441 vergrößern und mein Hintergrundbild mit maximaler Auflösung bei ca. 1200x2100, die dann mit 3: 4: 6: 8: 12 skaliert werden sollten.
  • Denken Sie daran, dass Sie nur für Bitmap-Dateien (.png, .jpg oder .gif) und Nine-Patch-Dateien (.9.png) dichtespezifische Zeichen bereitstellen müssen. Wenn Sie XML-Dateien zum Definieren von Zeichenressourcen (z. B. Formen) verwenden, legen Sie einfach eine Kopie im Standardverzeichnis für Zeichenfunktionen ab.
  • Wenn Sie jemals wirklich große oder ungerade Seitenverhältnisse berücksichtigen müssen, erstellen Sie auch für diese bestimmte Ordner, indem Sie die Flags dafür verwenden, z. sw, long, largeEtc.
  • Und Sie müssen den Hintergrund nicht zweimal zeichnen. Setzen Sie deshalb einen Stil mit<item name="android:windowBackground">@null</item>
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.