2015-02-16 8 views
6

Eines der Geräte-Bildschirm-Eigenschaften, die Android eine App-Abfrage gibt, ist das Seitenverhältnis. In den Beispielen, die ich diese Eigenschaft gesehen haben scheint nur zwei Werte zu haben - lange und notlong.Android-Bildschirm-Seitenverhältnis mathematisch berechnen

Ich versuche, die von Android verwendete Logik umzukehren, um ein Gerät mit einem der beiden Seitenverhältnisse zu klassifizieren.

Um einige offizielle Daten zu erhalten, mit zu arbeiten, ich auf die Werte von den Gerätedefinitionen im AVD Manager-Tool in Android Studio, inklusive bereitgestellt bezeichnet und kombiniert, dass mit meinen eigenen Berechnungen: Devices included in AVD Manager

Die Spalte " Veröffentlichte Ratio "zeigt den aus dem AVD Manager extrahierten Wert. Basierend auf diesen Ergebnissen bin ich Fehler zu verstehen, wie Nexus 5 und 6 notlong betrachtet werden, während Galaxy S4 und Galaxy Nexus lange betrachtet werden.

+0

das Verhältnis Ergebnis veröffentlichen kommen aus welchem ​​Algorithmus? Wenn es dir gehört, kannst du es zeigen? –

+0

Das veröffentlichte Verhältnis kam vom AVD-Manager. Es ist Teil des von Google bereitgestellten Android Studio und auch Teil des Android SDK. –

+0

So starten Sie den AVD Manager - https://db.tt/shvjNGcb und hier erfahren Sie, wie Sie das Seitenverhältnis eines vorhandenen Geräts herausfinden: https://db.tt/74U5kQEh –

Antwort

0

Ich glaube, ich bin sehr spät für diese Antwort, aber immer noch für die Menschen, die, lautet die Antwort wissen wollen:

if(screen_width > screen_height) 
{ 
    aspectRatio = screen_width/screen_height; 
} 
else 
{ 
    aspectRatio = screen_height/screen_width; 
} 
4
DisplayMetrics metrics = context.getResources().getDisplayMetrics(); 
float ratio = ((float)metrics.heightPixels/(float)metrics.widthPixels 
);