Bei der Unterstützung unterschiedlicher Bildschirmgrößen (-dichten) in Android liegt der Schwerpunkt häufig auf der Erstellung unterschiedlicher Layouts für jeden möglichen Bildschirm. IE
- ldpi
- mdpi
- hdpi
- xhdpi
- xxhdpi
- xxxhdpi
Ich habe ein Layout für einen xhdpi- Bildschirm als Referenz entworfen und dessen Abmessungen in dimension.xml definiert . Jetzt möchte ich jede mögliche Bildschirmgröße unterstützen. Wie kann ich das machen?
Soweit ich weiß, kann ich mit diesem Tool die richtige dimension.xml für andere Bildschirmgrößen ermitteln und meinem Projekt hinzufügen. Ist das in meiner Situation der richtige Weg?
Eine andere Frage: Muss ich nur die Datei dimension.xml für die obigen Bildschirmabmessungen erstellen ? Wenn ja, was dann w820dp
?
Danke für Ihre Hilfe. Ich muss nur Telefone unterstützen (keine Tablets oder andere Geräte).
dimesn.xml
Dateien für unterschiedliche Auflösungen erstellen .W820dp
unterstützt eine andere Android-Version? Können Sie mir auch ein Tutorial zur Unterstützung verschiedener Bildschirme auf der Basis von dimension.xml vorschlagen?Antworten:
Sie müssen einen Ordner mit unterschiedlichen Werten für verschiedene Bildschirme erstellen . Mögen
Weitere Informationen finden Sie hier
Bearbeitet von @humblerookie
Sie können das Android Studio-Plugin Dimenify verwenden, um automatisch Bemaßungswerte für andere Pixel-Buckets basierend auf benutzerdefinierten Skalierungsfaktoren zu generieren. Es befindet sich noch in der Beta-Phase. Informieren Sie den Entwickler über alle Probleme / Vorschläge, auf die Sie stoßen.
quelle
Verwenden Sie Scalable DP
Obwohl es theoretisch eine gute Idee ist, ein anderes Layout für verschiedene Bildschirmgrößen zu erstellen, kann es sehr schwierig werden, alle Bildschirmabmessungen und Pixeldichten zu berücksichtigen. Es
dimens.xml
ist überhaupt nicht einfach, über 20 verschiedene Dateien zu haben, wie in den obigen Antworten vorgeschlagen.Wie benutzt man:
Verwendung
sdp
:implementation 'com.intuit.sdp:sdp-android:1.0.5'
in Ihrebuild.gradle
,Ersetzen Sie einen
dp
Wert wie z. B.50dp
durch einen@dimen/50_sdp
ähnlichen Wert :Wie es funktioniert:
sdp
skaliert mit der Bildschirmgröße, da es sich im Wesentlichen um eine riesige Liste von Unterschiedendimens.xml
für jeden möglichendp
Wert handelt.Sehen Sie es in Aktion:
Hier handelt es sich um drei Geräte mit sehr unterschiedlichen Bildschirmabmessungen und -dichten:
Beachten Sie, dass die
sdp
Berechnung der Größeneinheit aufgrund einiger Leistungs- und Verwendbarkeitsbeschränkungen eine gewisse Annäherung enthält.quelle
Wir möchten die Änderungen der erforderlichen Ansichtsgröße in verschiedenen Bildschirmen sehen.
Wir müssen unterschiedliche Werteordner für unterschiedliche Bildschirme erstellen und die Datei dimension.xml basierend auf der Bildschirmdichte ablegen.
Ich habe eine Textansicht genommen und die Änderungen beobachtet, als ich dimension.xml in verschiedenen Werteordnern geändert habe.
Bitte folgen Sie dem Prozess
normal - xhdpi \ dimension.xml
Die folgenden Geräte können die Größe von Bildschirmen ändern, wenn wir die normale - xhdpi \ dimension.xml ändern
Nexus 5X (5,2 "* 1080 * 1920: 420 dpi)
Nexus 6P (5,7 "* 1440 * 2560: 560 dpi)
Nexus 6 (6,0 "* 1440 * 2560: 560 dpi)
Nexus 5 (5,0 ", 1080 1920: xxhdpi)
Nexus 4 (4,7 ", 768 * 1280: xhdpi)
Galaxy Nexus (4,7 ", 720 * 1280: xhdpi)
4,65 "720p (720 * 1280: xhdpi)
4,7 "WXGA (1280 * 720: Xhdpi)
Xlarge - xhdpi \ dimension.xml
Die folgenden Geräte können die Größe von Bildschirmen ändern, wenn wir die Xlarge - xhdpi \ dimension.xml ändern
Nexus 9 (8,9 ", 2048 * 1556: xhdpi)
Nexus 10 (10,1 ", 2560 * 1600: xhdpi)
groß - xhdpi \ dimension.xml
Die folgenden Geräte können die Größe von Bildschirmen ändern, wenn wir die große xhdpi \ dimension.xml ändern
Nexus 7 (7,0 ", 1200 * 1920: xhdpi)
Nexus 7 (2012) (7,0 ", 800 * 1280: tvdpi)
Die folgenden Bildschirme werden unter "Generische Telefone und Tablets suchen" angezeigt.
groß - mdpi \ dimension.xml
Die folgenden Geräte können die Größe von Bildschirmen ändern, wenn wir die Größe - mdpi \ dimension.xml ändern
5,1 "WVGA (480 * 800: mdpi)
5,4 "FWVGA (480 * 854: mdpi)
7,0 "WSVGA (Tablette) (1024 * 600: mdpi)
normal - hdpi \ dimension.xml
Die folgenden Geräte können die Größe von Bildschirmen ändern, wenn wir die normale Datei - hdpi \ dimension.xml - ändern
Nexus s (4,0 ", 480 * 800: hdpi)
Nexus eins (3,7 ", 480 * 800: hdpi)
small - ldpi \ dimension.xml
Die folgenden Geräte können die Größe von Bildschirmen ändern, wenn wir die Datei small - ldpi \ dimension.xml ändern
2,7 "QVGA Slider (240 * 320: ldpi)
2,7 "QVGA (240 * 320: ldpi)
xlarge - mdpi \ dimension.xml
Die folgenden Geräte können die Größe von Bildschirmen ändern, wenn wir die Datei xlarge - mdpi \ dimension.xml ändern
10,1 "WXGA (TABLETTE) (1280 * 800: MDPI)
normal - ldpi \ dimension.xml
Die folgenden Geräte können die Größe von Bildschirmen ändern, wenn wir die normale - ldpi \ dimension.xml ändern
3,3 "WQVGA (240 * 400: LDPI)
3,4 "WQVGA (240 * 432: LDPI)
normal - hdpi \ dimension.xml
Die folgenden Geräte können die Größe von Bildschirmen ändern, wenn wir die normale Datei - hdpi \ dimension.xml - ändern
4,0 "WVGA (480 * 800: hdpi)
3,7 "WVGA (480 * 800: hdpi)
3,7 "FWVGA-Schieberegler (480 * 854: HDPI)
normal - mdpi \ dimension.xml
Die folgenden Geräte können die Größe von Bildschirmen ändern, wenn wir die normale Datei - mdpi \ dimension.xml - ändern
3,2 "HVGA Slider (ADP1) (320 * 480: MDPI)
3,2 "QVGA (ADP2) (320 * 480: MDPI)
quelle
values-normal-xhdpi
?Es gibt nette Bibliotheken, die alles handhaben und Ihre Schmerzen lindern. Fügen Sie zur Verwendung einfach zwei Abhängigkeiten in gradle hinzu:
Verwenden Sie danach
dimens
Folgendes:quelle
Ich habe ein einfaches Java-Programm hochgeladen, das Ihren Projektspeicherort und die gewünschte Dimensionsdatei als Eingabe verwendet. Auf dieser Grundlage würde die entsprechende Dimensionsdatei in der Konsole ausgegeben. Hier ist der Link dazu:
https://github.com/akeshwar/Dimens-for-different-screens-in-Android/blob/master/Main.java
Hier ist der vollständige Code für die Referenz:
quelle
Sie müssen einen anderen
values
Ordner für verschiedene Bildschirme erstellen und diedimens.xml
Datei entsprechend der Dichte ablegen.quelle
ldpi
,mdpi
Weisevalues-xxhdpi
für Nexus 6 erwähnen ?320x480
ist typisch mdpi . Also, setzen Sie es entweder invalues
oder invalues-mdpi
Sie können setzen
dimens.xml
in1) Werte
2) Werte-hdpi
3) Werte-xhdpi
4) Werte-xxhdpi
Geben Sie
dimens.xml
je nach Dichte unterschiedliche Größen in den entsprechenden Ordnern an.quelle
Falls Sie mehr sehen: Hier ist ein Link für eine Liste der Geräte (Tablet, Handy, Uhren), einschließlich
watch
,chromebook
,windows
undmac
. Hier finden Sie die Dichte, Abmessungen usw. Wenn Sie sie auch hier verwenden, ist dies eine gute Ressource, wenn Sie auch einen Emulator verwenden.Wenn Sie auf ein bestimmtes Element klicken, werden auf der rechten Seite weitere Details angezeigt.
Da es ist
Android
, werde ich im Zusammenhang damit posten.~ Es ist besser, wenn Sie eine Kopie des Webs speichern. Um es offline anzuzeigen.
quelle
Android 3.2 führt einen neuen Ansatz für Bildschirmgrößen ein. Die Zahlen, die die Bildschirmgröße beschreiben, sind alle in "dp" -Einheiten angegeben. Meistens können wir verwenden
kleinste Breite dp: die kleinste verfügbare Breite für das Anwendungslayout in „dp“ -Einheiten; Dies ist die kleinste Breite dp, die Sie jemals bei einer Drehung des Displays antreffen werden.
Um einen Rechtsklick zu erstellen, klicken Sie auf res >>> new >>> Android-Ressourcenverzeichnis
Von Verfügbare Qualifikations Fenster bewegen Kleinster Bildschirmbreite zu Chosen - Qualifikation
In Bildschirmbreite Fenster nur die „dp“ Wert schreiben von Ihnen beginnen würde Android Studio möchte , dass dimens zu verwenden.
Klicken Sie mit der rechten Maustaste auf das neu erstellte Ressourcenverzeichnis, um zur Projektansicht zu wechseln
neue >>> Werte Ressourcendatei Geben Sie einen neuen Dateinamen dimension.xml ein und Sie sind fertig.
quelle