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:
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.
Lesson Summary. The aspect ratio of an image is the ratio of its width to its height. For instance, if a rectangle has an aspect ratio of 2:1, then it is twice as wide as it is tall. The aspect ratio formula is width divided by height: r=wh r = w h .
FORMULA. If the width divided by the height equals 1.778, then the aspect ratio is 16:9 (1.78:1). If you know the width of an object but not the height, then you can find the 16:9 height by dividing width by 1.778.
1. Display display = getWindowManager(). getDefaultDisplay(); Point size = new Point(); display. getSize(size); int width = size.
DisplayMetrics metrics = context.getResources().getDisplayMetrics();
float ratio = ((float)metrics.heightPixels / (float)metrics.widthPixels);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With