Ich möchte dies überprüfen, um verschiedene Bilder über das Internet abzurufen. Wie geht das?
121
density = getResources().getDisplayMetrics().density;
// return 0.75 if it's LDPI
// return 1.0 if it's MDPI
// return 1.5 if it's HDPI
// return 2.0 if it's XHDPI
// return 3.0 if it's XXHDPI
// return 4.0 if it's XXXHDPI
Sie können die Bildschirmdichte überprüfen mit:
BEARBEITEN Beachten Sie, dass im Zuge der Weiterentwicklung von Android andere Werte in die
switch
Fälle aufgenommen werden sollten. Ab dieser Bearbeitung umfasst diesDisplayMetrics.DENSITY_TV
undDisplayMetrics.DENSITY_XXHIGH
. Konsultieren Sie die Dokumente für die neuesten Informationen; Ich werde mich nicht darum kümmern, diese Antwort beizubehalten.quelle
density
wie von SteD vorgeschlagen.)DENSITY_XXHIGH
. Ich habe der Antwort einen Haftungsausschluss hinzugefügt, um alle zukünftigen Fälle abzudecken. :)Ab 2018 können Sie die folgende Methode verwenden:
Aber wie @Ted zeigte, konsultieren Sie immer die offiziellen Dokumente, bevor Sie verwenden
quelle
Aus den obigen Antworten habe ich sie kombiniert und die folgende Funktion erstellt:
Fügen Sie nun auf welchem Gerät, auf dem Sie die Dichteinformationen abrufen möchten und in welchem Ordner sie verwendet werden sollen, die obige Methode in diese Aktivität ein und fügen Sie die folgende Zeile in onCreate hinzu
quelle
Damit React Native überprüfen kann, welche Größe derzeit vom Gerät stammt
quelle
PixelRatio.get()
Gibt abhängig von der in den Android-Einstellungen festgelegten Anzeigegröße und der Auflösung eine Reihe von Werten zurück. Diese Werte stimmen nicht mit den genauen Werten überein, die Sie festgelegt haben.Auf einigen Geräten (meins ist Galaxy Tab3) geben sowohl Dichte als auch DichteDpi seltsame Werte wie 1,33 (Dichte), 213 (DichteDpi) zurück. Meine Lösung besteht also darin, dieses Flag hinzuzufügen:
Fügen Sie diese in 4 values.xml-Dateien unter den entsprechenden Ordnern res / values- [xxx] / ein.
quelle