Haftungsausschluss
Diese Antwort stammt aus dem Jahr 2013 und ist stark veraltet. Ab Android 3.2 gibt es jetzt 6 Gruppen mit Bildschirmdichte. Diese Antwort wird aktualisiert, sobald ich dazu in der Lage bin, jedoch ohne ETA. Informationen zu allen Dichten finden Sie derzeit in der offiziellen Dokumentation (Informationen zu bestimmten Pixelgrößen sind jedoch wie immer schwer zu finden).
Hier ist die tl / dr-Version
Erstellen Sie 4 Bilder, eines für jede Bildschirmdichte:
- xlarge (xhdpi): 640 x 960
- groß (hdpi): 480 x 800
- mittel (mdpi): 320 x 480
- klein (ldpi): 240 x 320
Lesen Sie die Einführung zu 9-Patch-Bildern im Android Developer Guide
- Entwerfen Sie Bilder mit Bereichen, die sicher gedehnt werden können, ohne das Endergebnis zu beeinträchtigen
Damit wählt Android die entsprechende Datei für die Bilddichte des Geräts aus und streckt das Bild gemäß dem 9-Patch-Standard.
Ende von tl; dr. Voller Beitrag voraus
Ich antworte in Bezug auf den designbezogenen Aspekt der Frage. Ich bin kein Entwickler, daher kann ich keinen Code für die Implementierung vieler der bereitgestellten Lösungen bereitstellen. Leider möchte ich Designern helfen, die genauso verloren sind wie ich, als ich bei der Entwicklung meiner ersten Android-App mitgeholfen habe.
Passend für alle Größen
Mit Android können Unternehmen ihre Mobiltelefone und Tische in nahezu jeder Größe und mit nahezu jeder gewünschten Auflösung entwickeln. Aus diesem Grund gibt es keine "richtige Bildgröße" für einen Begrüßungsbildschirm, da es keine festen Bildschirmauflösungen gibt. Dies ist ein Problem für Personen, die einen Begrüßungsbildschirm implementieren möchten.
Möchten Ihre Benutzer wirklich einen Begrüßungsbildschirm sehen?
(Nebenbei bemerkt, Begrüßungsbildschirme werden von den Usability-Leuten etwas entmutigt. Es wird argumentiert, dass der Benutzer bereits weiß, auf welche App er getippt hat, und dass das Branding Ihres Bildes mit einem Begrüßungsbildschirm nicht erforderlich ist, da dies nur die Benutzererfahrung unterbricht eine "Anzeige". Sie sollte jedoch in Anwendungen verwendet werden, die beim Initialisieren (5s +) ein beträchtliches Laden erfordern, einschließlich Spielen und dergleichen, damit der Benutzer sich nicht fragt, ob die App abgestürzt ist oder nicht.
Bildschirmdichte; 4 Klassen
Angesichts der vielen verschiedenen Bildschirmauflösungen auf den Handys auf dem Markt hat Google einige Alternativen und raffinierte Lösungen implementiert, die helfen können. Das erste, was Sie wissen müssen, ist, dass Android ALLE Bildschirme in 4 verschiedene Bildschirmdichten unterteilt:
- Niedrige Dichte (ldpi ~ 120 dpi)
- Mittlere Dichte (mdpi ~ 160 dpi)
- Hohe Dichte (hdpi ~ 240 dpi)
- Extra hohe Dichte (xhdpi ~ 320dpi) (Diese dpi-Werte sind Näherungswerte, da kundenspezifische Geräte unterschiedliche dpi-Werte aufweisen.)
Was Sie (wenn Sie Designer sind) wissen müssen, ist, dass Android je nach Gerät grundsätzlich aus 4 Bildern zur Anzeige auswählt. Sie müssen also grundsätzlich 4 verschiedene Bilder entwerfen (obwohl mehr für verschiedene Formate wie Breitbild, Hoch- / Querformat usw. entwickelt werden können).
Beachten Sie Folgendes: Wenn Sie nicht für jede einzelne Auflösung, die in Android verwendet wird, einen Bildschirm entwerfen, wird Ihr Bild an die Bildschirmgröße angepasst. Und wenn Ihr Bild im Grunde kein Farbverlauf oder eine Unschärfe ist, kommt es beim Strecken zu unerwünschten Verzerrungen. Sie haben also grundsätzlich zwei Möglichkeiten: Erstellen Sie ein Bild für jede Kombination aus Bildschirmgröße und Dichte oder erstellen Sie vier 9-Patch-Bilder.
Die schwierigste Lösung besteht darin, für jede einzelne Auflösung einen anderen Begrüßungsbildschirm zu entwerfen. Sie können beginnen, indem Sie den Auflösungen in der Tabelle am Ende dieser Seite folgen (es gibt weitere. Beispiel: 960 x 720 ist dort nicht aufgeführt). Angenommen, das Bild enthält einige kleine Details, z. B. kleinen Text, müssen Sie für jede Auflösung mehr als einen Bildschirm entwerfen. Beispielsweise kann ein 480 x 800-Bild, das auf einem mittleren Bildschirm angezeigt wird, in Ordnung aussehen, aber auf einem kleineren Bildschirm (mit höherer Dichte / dpi) wird das Logo möglicherweise zu klein oder Text wird möglicherweise nicht mehr lesbar.
9-Patch-Bild
Die andere Lösung besteht darin , ein 9-Patch-Image zu erstellen . Es handelt sich im Grunde genommen um einen 1-Pixel-transparenten Rand um Ihr Bild. Durch Zeichnen schwarzer Pixel im oberen und linken Bereich dieses Rahmens können Sie festlegen, welche Teile Ihres Bildes gedehnt werden dürfen. Ich werde nicht näher auf die Funktionsweise von 9-Patch-Bildern eingehen, aber kurz gesagt, die Pixel, die an den Markierungen im oberen und linken Bereich ausgerichtet sind, sind die Pixel, die wiederholt werden, um das Bild zu dehnen.
Ein paar Grundregeln
- Sie können diese Bilder in Photoshop (oder einer beliebigen Bildbearbeitungssoftware, mit der transparente PNGs genau erstellt werden können) erstellen.
- Der 1-Pixel-Rand muss VOLLSTÄNDIG TRANSPARENT sein.
- Der transparente 1-Pixel-Rand muss sich um Ihr Bild herum befinden, nicht nur oben und links.
- In diesem Bereich können Sie nur schwarze (# 000000) Pixel zeichnen.
- Der obere und linke Rand (die die Bilddehnung definieren) können nur einen Punkt (1 x 1 Pixel), zwei Punkte (beide 1 x 1 Pixel) oder EINE durchgehende Linie (Breite x 1 Pixel oder 1 Pixel x Höhe) enthalten.
- Wenn Sie 2 Punkte verwenden, wird das Bild proportional vergrößert (sodass jeder Punkt abwechselnd vergrößert wird, bis die endgültige Breite / Höhe erreicht ist).
- Der 1px-Rand muss zusätzlich zu den beabsichtigten Abmessungen der Basisdatei sein. Ein 100x100 9-Patch-Bild muss also tatsächlich 102x102 haben (100x100 + 1px oben, unten, links und rechts)
- 9-Patch-Bilder müssen mit * .9.png enden
Sie können also 1 Punkt auf jeder Seite Ihres Logos (am oberen Rand) und 1 Punkt darüber und darunter (am linken Rand) platzieren. Diese markierten Zeilen und Spalten sind die einzigen Pixel, die gedehnt werden müssen.
Beispiel
Hier ist ein 9-Patch-Bild mit 102 x 102 Pixel (100 x 100 Endgröße für App-Zwecke):
Hier ist ein 200% -Zoom des gleichen Bildes:
Beachten Sie die 1px-Markierungen oben und links, die angeben, welche Zeilen / Spalten erweitert werden.
So würde dieses Bild in 100x100 in der App aussehen:
Und hier ist, was es möchte, wenn es auf 460x140 erweitert wird:
Eine letzte Sache zu beachten. Diese Bilder sehen auf Ihrem Bildschirm und auf den meisten Mobiltelefonen möglicherweise gut aus. Wenn das Gerät jedoch eine sehr hohe Bilddichte (dpi) aufweist, sieht das Bild zu klein aus. Wahrscheinlich noch lesbar, aber auf einem Tablet mit einer Auflösung von 1920 x 1200 erscheint das Bild als sehr kleines Quadrat in der Mitte. Was ist die Lösung? Entwerfen Sie 4 verschiedene 9-Patch-Launcher-Bilder für jeweils unterschiedliche Dichte. Um sicherzustellen, dass kein Schrumpfen auftritt, sollten Sie für jede Dichtekategorie die niedrigste gemeinsame Auflösung verwenden. Das Verkleinern ist hier unerwünscht, da 9-Patch nur das Dehnen berücksichtigt, sodass bei einem Verkleinerungsprozess kleiner Text und andere Elemente die Lesbarkeit verlieren können.
Hier ist eine Liste der kleinsten und häufigsten Auflösungen für jede Dichtekategorie:
- xlarge (xhdpi): 640 x 960
- groß (hdpi): 480 x 800
- mittel (mdpi): 320 x 480
- klein (ldpi): 240 x 320
Entwerfen Sie also vier Begrüßungsbildschirme in den obigen Auflösungen, erweitern Sie die Bilder, legen Sie einen transparenten Rand von 1 Pixel um die Leinwand und markieren Sie, welche Zeilen / Spalten dehnbar sind. Beachten Sie, dass diese Bilder für JEDES Gerät in der Dichtekategorie verwendet werden, sodass Ihr ldpi-Bild (240 x 320) auf einem besonders großen Tablet mit geringer Bilddichte (~ 120 dpi) möglicherweise auf 1024 x 600 gedehnt wird. 9-Patch ist daher die beste Lösung für das Dehnen, solange Sie kein Foto oder komplizierte Grafiken für einen Begrüßungsbildschirm benötigen (beachten Sie diese Einschränkungen beim Erstellen des Designs).
Die einzige Möglichkeit, dass diese Dehnung nicht auftritt, besteht darin, einen Bildschirm pro Auflösung zu entwerfen (oder einen für jede Kombination aus Auflösung und Dichte, wenn Sie vermeiden möchten, dass Bilder auf Geräten mit hoher / niedriger Dichte zu klein / groß werden) oder zu erkennen Das Bild darf nicht gedehnt werden und es wird überall dort eine Hintergrundfarbe angezeigt (denken Sie auch daran, dass eine bestimmte Farbe, die von der Android-Engine gerendert wird, aufgrund von Farbprofilen wahrscheinlich anders aussieht als dieselbe bestimmte Farbe, die von Photoshop gerendert wird).
Ich hoffe das hat Sinn gemacht. Viel Glück!