SPH-L710 (Sprint Galaxy S III), das 4.4.2 ausführt, meldet xdpi und ydpi falsch

8

Wir haben in letzter Zeit eine Datenanomalie festgestellt, bei der eine Reihe von Geräten ihre xdpi und ydpi über DisplayMetrics falsch meldet.

Als spezifisches Beispiel melden alle SPH-L710 Sprint Galaxy S III-Geräte, die 4.4.2 ausführen, ein xdpi und ein ydpi von ~ 160. Bei einer Auflösung von 1280x720 würde dies eine Bildschirmgröße von ~ 9 Zoll ergeben, was offensichtlich nicht der Fall ist. Vor Version 4.4.2 hat dieses Gerätemodell seine xdpi und ydpi: ~ 304 bzw. ~ 306 ordnungsgemäß gemeldet.

Wir greifen auf diese Informationen über DisplayMetrics wie folgt zu:

%Vor%

Hat jemand anderes bemerkt, dass diese Metriken inkonsistent / unzuverlässig sind? Gibt es eine genauere Möglichkeit, auf diese Informationen zuzugreifen?

Bearbeiten: Ich habe diesen Beitrag gefunden bezüglich xdpi / ydpi Ungenauigkeiten. Sowohl Romain als auch Dianne scheinen das Problem anzuerkennen. Die Tatsache, dass die DisplayMetrics-Dokumente diese unzuverlässigen Eigenschaften nicht zur Kenntnis nehmen, scheint mir völlig unverantwortlich zu sein.

    
bread 10.11.2014, 17:50
quelle

1 Antwort

1

Ab API 17 können Sie getRealMetrics aufrufen, um genauere Ergebnisse zu erhalten.

%Vor%

Aus der Display-Dokumentation

  

public void getRealMetrics (DisplayMetrics outMetrics)

     

Hinzugefügt in API-Ebene 17 Ruft Anzeigemetriken basierend auf der tatsächlichen Größe von ab   diese Anzeige.

     

Die Größe wird basierend auf der aktuellen Drehung des Displays angepasst.

     

Die tatsächliche Größe ist möglicherweise kleiner als die physische Größe des Bildschirms   Der Fenstermanager emuliert eine kleinere Anzeige (mit adb shell am   Display-Größe).

     

Parameter outMetrics Ein DisplayMetrics-Objekt zum Empfangen der Metriken.

    
Dalija Prasnikar 21.01.2015, 19:42
quelle