Getting the height of Android device independent of pixel densities

RMAG news

Table of contents

TLDR (too long didn’t read)
Why does this matter?

Resources

density multiplier documentation
display metric documentaion

My app on the Google play store

The app

My app’s GitHub code

The GitHub

TLDR (too long didn’t read)

When trying to get the height of a Android device, make sure you do it in an pixel density independent way:
correct way to get height:

val displayMetrics = Resources.getSystem().displayMetrics
val heightPixels = displayMetrics.heightPixels //exact physical pixel amount(different on certain devices)
val density = displayMetrics.density //density multiplier
val pixelDensityIndependentHeight =heightPixels / density

wrong way to get height:

val height = Resources.getSystem().displayMetrics.heightPixels
//as previously mentioned, this height will change depending on the
// device’s pixel density and it can really mess up your UI

Why does this matter?

I have created THIS UI FEATURE which relies heavily on my app being able to understand the height of the device and dividing it into 3 sections. If I don’t use the height in a pixel density independent way(unfortunately I did this) the UI will look different on different devices. Which obviously is not ideal
So to summarize, make sure you are conscious of pixel densities in your UI

Conclusion

Thank you for taking the time out of your day to read this blog post of mine. If you have any questions or concerns please comment below or reach out to me on Twitter.

Please follow and like us:
Pin Share