How to calculate Android screen aspect ratio mathematically

Ravi Gupta picture Ravi Gupta · Feb 16, 2015 · Viewed 16.1k times · Source

One of the device screen properties that Android lets an app query is it's aspect ratio. In the examples that I have seen this property seems to have only two values - long and notlong.

I am trying to reverse engineer the logic being used by Android to classify a device as having one of the two aspect ratios.

To get some official data to work with, I referred to the values provided by the device definitions included in the AVD Manager tool in Android Studio, and combined that with my own calculations: Devices included in AVD Manager

The column "Published Ratio" shows the value extracted from the AVD Manager. Based on these results, I am failing to understand how Nexus 5 and 6 are considered notlong while Galaxy S4 and Galaxy Nexus are considered long.

Answer

VikasGoyal picture VikasGoyal · Nov 25, 2016
DisplayMetrics metrics = context.getResources().getDisplayMetrics();
float ratio = ((float)metrics.heightPixels / (float)metrics.widthPixels);