When designing an Android application, dpi scale is used (from mdpi to xxxhdpi, as presented on material.io); but on https://material.io/devices/ there's a list of many Android-based devices for which physical px/in density is very different.

Why do 6 "constants" represent all variety of screen densities on different devices?


In the devices list on the right you can sort the list by pixel ratio.

 - 4:    1 device  <- xxxhdpi
 - 3.5:  3 devices
 - 3:    9 devices <- xxhdpi
 - 2.6:  2 devices
 - 2:   28 devices <- xhdpi
 - 1.5: 10 devices <- hdpi
 - 1.3:  4 devices
 - 1:   10 devices <- mdpi

So they select the ones that have more number of devices, which have a difference with the previous of .5 or 1. We could argue that rather than 4 they could have chosen 3.5 for xxxhdpi, but I guess more devices will be release from now on with 4.

So for example:

  • Nexus 7 ('13) has a pixel ratio of 2 and a physical screen of 1200x1920px. So it's effective screen is 600x1920dp (as every two pixels will act as one).

  • Surface Book has a pixel ratio of 2 and a physical screen of 3000x2000px. So it's effective screen is 1500x1000dp (as every two pixels will act as one).

  • Perfectly put. Also, its not like Google is resistant to introducing new density inflection categories as more devices hop into a particular density bracket. For example, as more devices started popping up in the 1.3 x mdpi bracket, Google introduced the tvdpi to cater to the same (though this category generally caters to the Smart TV apps). – ikartik90 Jan 13 '17 at 7:55

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.