Android各种屏幕的分布率以及自适应各种屏幕的开发研究

下图表明了现在持有Android设备的屏幕分辨率的大概的一个分布,从中可看到mdpi跟hdpi的nomal分类占据了84%!所以我们的程序最开始要尽量适应这俩种设备。

![](https://upload-images.jcodecraeer.com/upload-images-old/img/ ldpi_chd_t_7.4_0.3_2.0_57.8_0.7_26.2_0.9_2.4_2.3.png)Data collected during a 7-day period ending on May 1, 2012

ldpimdpihdpixhdpi
small2.3%2.4%
normal0.7%26.2%57.8%0.9%
large0.3%2%
xlarge7.4%

那么下图则给出了各种分辨率屏幕的对应关系,标注红色的部分就是我们需要关心的。他们分别位于mdpi跟hdpi。

**Table 3.**Various screen configurations available from emulator skins in the Android SDK (indicated in bold) and other representative resolutions.

Low density (120), ldpiMedium density (160), mdpiHigh density (240), hdpiExtra high density (320), xhdpi
_Small_screenQVGA (240x320)480x640
_Normal_screen**WQVGA400 (240x400)
WQVGA432 (240x432)**HVGA (320x480)**WVGA800 (480x800)
WVGA854 (480x854)**
600x1024640x960
_Large_screenWVGA800 (480x800)
WVGA854** (480x854)***WVGA800 (480x800)
WVGA854* (480x854)**
600x1024
_Extra Large_screen1024x600WXGA (1280x800)
1024x768
1280x7681536x1152
1920x1152
1920x12002048x1536
2560x1536
2560x1600
  • _xlarge_screens are at least 960dp x 720dp

  • _large_screens are at least 640dp x 480dp

  • _normal_screens are at least 470dp x 320dp

  • _small_screens are at least 426dp x 320dp

那么如何针对mdpi跟hdpi做开发呢?我们通常在编写布局文件的时候碰到ps,dp等单位,建议大家使用dp来自适应各种屏幕,下面是dp对应屏幕分辨率:

  • 320dp: a typical phone screen (240x320 ldpi,320x480 mdpi,480x800 hdpi, etc).

  • 480dp: a tweener tablet like the Streak (480x800 mdpi).

  • 600dp: a 7” tablet (600x1024 mdpi).

  • 720dp: a 10” tablet (720x1280 mdpi, 800x1280 mdpi, etc).

其中计算公式是:px = dp * (dpi / 160)

参考:http://developer.android.com/resources/dashboard/screens.html

http://developer.android.com/guide/practices/screens_support.html