DEV Community

Cover image for Getting the height of Android device independent of pixel densities in Jetpack Compose
Tristan Elliott
Tristan Elliott

Posted on • Edited on

Getting the height of Android device independent of pixel densities in Jetpack Compose

Table of contents

  1. TLDR (too long didn't read)
  2. Why does this matter?

Resources

My app on the Google play store

My app's GitHub code

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

Enter fullscreen mode Exit fullscreen mode
  • 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

Enter fullscreen mode Exit fullscreen mode

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.

Top comments (0)