Schließlich wurde eine Struktur erstellt, die Layouts und Symbole für mehrere Bildschirme verarbeitet.
Android verallgemeinert Geräteanzeigen anhand von zwei Parametern in Kategorien:
- Bildschirmgröße, die physische Größe des Displays (diagonal gemessen)
- Bildschirmdichte, die physikalische Pixeldichte der Anzeige (in Pixel pro Zoll oder ppi) "
Um die Bildschirmgröße und -dichte schnell zu bestimmen, installieren Sie bitte die App " What's my Size " für Android.
Bildschirmgröße
Android definiert vier allgemeine Bildschirmgrößen:
Qualifier Size
small ~3 inches (approx)
normal ~4 inches (approx)
large Exceeds 4 inches
xlarge Exceeds 7 inches
- Die meisten Telefone werden als klein oder normal eingestuft (ungefähr 3 bis 4 Zoll diagonal). Aber jetzt gibt es viele Telefone mit großem Bildschirm wie Galaxy S4, HTC One, Xperia Z.
- Ein kleines Tablet wie das Samsung Galaxy Tab wird als groß eingestuft (größer als 4 Zoll).
- Extra groß gilt für große Geräte, z. B. große Tablets
Android definiert vier allgemeine Bildschirmdichten:
Qualifier Description Nominal value
ldpi low density 120 ppi
mdpi medium density 160 ppi
hdpi high density 240 ppi
xhdpi extra high density 320 ppi
Typischerweise:
- Die Bildschirmgröße hat den größten Einfluss auf Ihre App-Layouts
- Die Bildschirmdichte hat den größten Einfluss auf Ihre Bild- und Grafikressourcen
Es wird aufgeführt hier die prozentuale Differenz des Gerätebildschirm
- Ldpi- 75%
- Mdpi- 100% (Basis laut Android-Entwicklerseite)
- Hdpi- 150%
- XHdpi- 200%
Aber da wir jetzt wissen, dass die meisten Geräte mit 480X800 geliefert werden , betrachte ich dies als basiertes Gerät, daher wird unsere neue Berechnung dies mögen
- Ldpi- 50%
- Mdpi- 66,67%
- Hdpi- 100%
- XHdpi- 133,33%
Dies bedeutet, dass das erste Symbol und Design zuerst für 480X800 und dann für die übrigen (dh Ldpi, Mdpi, Xhdpi) erstellt werden.
Es gibt Bilder, die für alle Layouts gleich sind und in Farbe und Form einheitlich sein müssen (keine komplexe Form, keine Kurve). Für diese Art von Bild erstellen wir sie, 9patch
die in den Ordner „Zeichenbar (ohne Suffix)“ gelegt werden sollen. Um ein 9Patch-Bild zu erstellen, können Sie entweder DrawNinePatch oder BetterNinePatch verwenden
Benennen Sie Ihre Bilder jetzt einfach nach den Standards von Android um und vervollständigen Sie Ihre Anwendung mit hdpi
und nehmen Sie dann den drawable-hdpi
Ordner und öffnen Sie Adode Photoshop (empfohlen). Erstellen Sie eine Aktion mit mehreren Größen (ändern Sie einfach die Größe entsprechend dem prozentualen Verhältnis), sobald die Aktion für alle Größen erstellt wurde, und führen Sie sie dann aus Batch Automatisieren und geben Sie Quelle (drawable-hdpi) und Ziel (drawable-ldpi, drawable-mdpi, drawable-xdpi) an.
Der Grund, warum ich darauf bestehe, dass Sie Photoshop verwenden, da die Größe Ihres Bildes automatisch mit Aktionen geändert wird und ein weiterer Pluspunkt darin besteht, dass Sie die Datei nicht umbenennen müssen (sie weist denselben Namen wie die ursprüngliche zu).
Wenn Sie alle Bilder erstellt haben, aktualisieren Sie Ihr Projekt und testen Sie es.
Manchmal besteht die Möglichkeit, dass das Layout, das den Bildschirm (xhdpi, hdpi, mdpi) unterstützt, in einen kleinen Bildschirm (ldpi) geschnitten wird. Um dies zu handhaben, erstellen Sie einfach einen separaten Layoutordner (layout-small) und fügen Sie ihn hinzu ScrollView
(meistens). Das ist es.
Tablet
Tablets werden in zwei Größen eingeteilt.
- 7 "(1024X (600-48 (Navigationsleiste))) = 1024X552 (ziehbar groß)
- 10 "(1280X (800-48 (Navigationsleiste))) = 1280X752 (zeichnbar-groß)
In diesem Fall müssen wir ein Bild für beide Bildschirme erstellen und sie einfach entsprechend platzieren
Alles in allem haben wir diesen Ordner in unserer Anwendung, um mehrere Bildschirme zu unterstützen.
drawable
drawable-ldpi
drawable-mdpi
drawable-hdpi
drawable-xhdpi
drawable-large
drawable-xlarge
wird mehr Qualifikation Kombination mit Screen size and Screen density
drawable-large-ldpi
drawable-large-mdpi
drawable-large-hdpi
drawable-large-xhdpi
mehr Qualifikation mit Screen density and Version
drawable-ldpi-v11
drawable-mdpi-v11
drawable-hdpi-v11
drawable-xhdpi-v11
und mehr Qualifikation mit Screen size and Version
drawable-large-v11
drawable-xlarge-v11
und mehr Qualifikation mit Smallest width concept(SW)
drawable-sw???dp
Darüber hinaus haben sie in Android V3.0 Honeycomb ein neues Konzept eingeführt, SW(smallest width)
bei dem Geräte nach Bildschirmbreite kategorisiert werden. Wenn wir also einen Ordner mit dem Namen erstellen, verwendet drawable-sw360dp
das Gerät mit 720 dp (entweder Breite oder Höhe) Ressourcen aus diesem Ordner.
zum Beispiel den finden Samsung Galaxy S3
dp zu Suffix ziehbar-sw? dp
Mit Bezug von DP Berechnung , Wenn Sie Ihr Layout oder ziehbar bis S3 unterstützen wollen , dann sagt die Berechnung
px = Gerätebreite = 720
dpi = Gerätedichte = 320
Formel angegeben
px = dp * (dpi / 160)
Formel austauschen, weil wir den Wert von px haben
dp = px / (dpi / 160)
jetzt Wert setzen,
dp= 720 / (320/160);
dp=360.
so drawable-sw360dp
wird der Job machen
Wenn Sie die Gerätekonfiguration von GsmArena Sameway erhalten, können Sie auch einen Ordner gemäß der Android-API-Version des Geräts erstellen, dh drawable-hdpi-v11`, sodass das Gerät mit API11 und Hdpi diese Ressourcen verwendet.
Zusätzliche Tipps:
Verwenden Sie relative Layouts, dp, sp und mm
dp-Einheiten - Geräteunabhängige Pixel, normalisiert auf 1 physikalisches Pixel auf einem Bildschirm mit 160 ppi, dh mittlerer Dichte. Zur Laufzeit skaliert. Verwendung für Bildschirmelementabmessungen
sp-Einheiten - skalierte Pixel, angegeben als Gleitkommawerte, basierend auf dp-Einheiten, aber zusätzlich skaliert für die Einstellung der Schriftgröße des Benutzers. Zur Laufzeit skaliert. Für Schriftgrößen verwenden
Sie sollten RelativeLayout immer für Layouts verwenden. AbsoluteLayout ist veraltet und sollte nicht verwendet werden.
Verwenden Sie geeignete Bildformate - PNG versus JPEG
Android "prefers" PNG for bitmap image files, "accepts" JPEG, and "discourages" GIF.
PNG und JPEG sind jedoch keine Äquivalente. Sie haben unterschiedliche Qualitätskompromisse, und PNG ist nicht immer das Beste:
JPEG kann die Dateigröße um bis zu 50% gegenüber PNG reduzieren. Dies ist von Bedeutung, wenn Ihre App bildintensiv ist
Ein "verlustbehaftetes" JPEG höherer Qualität sieht bei gleicher Dateigröße möglicherweise besser aus als ein stark komprimiertes "verlustfreies" PNG
Fügen Sie Ihren Bildern und Grafiken Beschriftungen zum Debuggen hinzu
Verwenden Sie das Support-Screens-Element
Konfigurieren Sie Ihre Emulatoren mit realen Gerätewerten
Herkömmlicherweise werden Desktop-Systeme mit 72 ppi (Mac) oder 96 ppi (Windows, Linux) angezeigt. Im Vergleich zu Mobilgeräten weisen Desktop-Displays immer eine geringe Dichte auf.
Konfigurieren Sie Ihre Android-Emulatoren immer so, dass sie reale Gerätewerte imitieren, und stellen Sie sie immer so ein, dass sie skaliert werden, um die Gerätedichte zu emulieren.
In Eclipse können Sie ganz einfach mehrere Emulatoren erstellen (wählen Sie in der Eclipse-Menüleiste Fenster> AVD-Manager> Neu ), die mit Werten für reale Geräte konfiguriert sind:
Benennen Sie den Emulator für das reale Gerät, das emuliert wird. Geben Sie die Auflösung an. Verwenden Sie keine integrierten generischen Größen. Stellen Sie die Gerätedichte so ein, dass sie mit dem realen Gerät übereinstimmt.
Wenn Sie das Gerät starten, wählen Sie immer Anzeige auf echte Größe skalieren und geben Sie die tatsächliche Bildschirmgröße in Zoll ein.
Wenn Sie die Gerätedichte nicht festlegen, verwendet der Emulator standardmäßig eine niedrige Dichte und lädt immer ldpi-spezifische Ressourcen. Die Auflösung (Pixelabmessungen) ist korrekt, aber Ihre dichteabhängigen Bildressourcen werden nicht wie beabsichtigt angezeigt.
Natürlich wird nichts, was Sie tun, eine Bildqualität mit höherer Dichte auf einem Desktop-Display mit niedrigerer Dichte reproduzieren.
Hier sind die Daten aufgeführt, die während eines Zeitraums von 7 Tagen bis zum 1. Oktober 2012 gesammelt wurden. Die neueste Statistik zur Android-Plattformversion finden Sie hier
Basierend auf der Bildschirmgröße
Basierend auf der Bildschirmdichte