Android设备分辨率计算

面对Android设备那混乱的硬件体系,最淡定的开发者也会不免蛋疼起来。在做Android UI的时候,考虑最多的就是这些不同设备的适配问题。在为不同分辨率设计不同UI的时候,我们首先要知道目标设备的分辨率到底是多少。如何计算出来?

水果手机经常喜欢用分辨率超过人眼极限来标榜自己的设备有多么牛B,据说iPhone 4S的分辨率达到了326 PPI(pixel per inch),这个数值的计算公式为:

开方(屏幕宽度平方+屏幕高度平方)÷对角线尺寸

iPhone 4S,960x640像素,对角线尺寸3.5英寸,用上面的公式计算结果如下:

sqrt(sqr(960) + sqr(640)) / 3.5 ≈ 329.65

看来水果公司并未说谎。只是3.5寸的屏搞这么高的分辨率,考视力么?

和水果比起来,Android就更加复杂了,它把屏幕分成small,normal,large,xlarge四种,其对应的屏幕尺寸如下:

  • xlarge 至少960dp x 720dp
  • large 至少640dp x 480dp
  • normal 至少470dp x 320dp
  • small 至少426dp x 320dp

dp(Density-independent pixel)是一个密度无关的像素单位,是用来表示基于160 dpi的设备计算出来的虚拟像素。

屏幕分辨率被分成low dpi,medium dpi,high dpi,extra high dpi。详见下图:

Android设备尺寸定义

最近的Android设备屏幕分布图:

Android设备尺寸分布

更详细的文章:

另外,在分辨率单位上,DPI(dots per inch)和PPI(pixel per inch)目前已经通用。