Loading

px、dp、dip、dpi、sp 等到底有什么联系区别?


  px是像素,同时也是手机屏幕上所显示的(也不解释)

  dp是开发写layout的时候使用的尺寸单位

  sp是开发写layout时关于字体的字号单位,且dp与sp总为1:1关系。

 

  Android支持四种不同的dpi模式:ldpi mdpi hdpi xhdpi

  一般地,手机分辨率与所运行的dpi模式是匹配的,例如hvga(320x480像素)的手机屏幕一般在3.5英寸左右,运行在mdpi模式下(这个是ROM控制的,app不能改变)。当运行在mdpi下时,1dp=1px,也就是说设计师在PS里定义一个item高48px,开发就会定义该item高48dp;Photoshop中14px大的字体,开发会定义为14sp。

  对于一部wvga(480x800)手机,一般是运行在hdpi模式下。当运行在hdpi模式下时,1dp=1.5px:也就是说设计师在PS里定义一个item高72px,开发就会定义该item高48dp;Photoshop中21px大的字体,开发会定义为14sp。

  所以,当你的app需要适配多个dpi模式的时候(例如同时适配mdpi与hdpi),若你在wvga下做设计,你需要将你的各数值都为3的倍数,并在切图标注时将所有的数字除以3乘以2换算成dp,这样开发的同一套layout就能用在两个不同的dpi模式下,而不是写两套layout。

  mdpi与hdpi是2:3的关系
  mdpi与xhdpi是1:2的关系
  ldpi与mdpi是3:4的关系

 

注解:

   VGA : 是Video Graphics Array的缩写,视频图形阵列的意思,这里泛指分辨率为640*480的设备

   HVGA : 是Half-size VGA的缩写, 即VGA的一半,分辨率为480*320(3:2宽高比)得设备

   WVGA :是Wide VGA的缩写,分辨率为480*800的设备

posted @ 2014-03-26 16:37  孤独的天  阅读(828)  评论(0编辑  收藏  举报