Android dip 与 px 的区别,像素密度的概念。

之前做网站一直都用px(像素)这个单位,到了安卓里了出现了dip。dip跟px有什么区别呢?

原来是因为android设备的屏幕样式非常多,320×480,480×800,各种都有,所以google搞了个dip的单位,如果还是用px,那么能遇见的事情就会这样:

一个宽度是160px的输入框在320×480分辨率的手机中会有一半的大小,然而在480×800分辨率的手机中就只有1/3的大小了,比例失调了。

320px宽度的输入框在320×480分辨率的手机中是全屏宽度,然而在480×800分辨率的手机中就不会全屏宽度了,右边还有160px的空白!。

既然发现了问题,那么dip又是怎么回事呢?dip会根据系统设定的像素密度来转换成不同的px。

举个例子:

在240的像素密度下:

100dip会转换成150px , 是1:1.5的关系。

在160的像素密度下:

100dip会转换成100px,是1:1的关系。

那么如果我们还是定义一个宽度是160dip的输入框,在320×480,像素密度是160的手机上会显示一半的大小。 在480×800,像素密度是240的手机上也会显示一半的大小,因为这个时候160dip转换成240px,而240px刚好是480px的一半。

这里再瞎扯下android中的drawable-hdpi,drawable-mdpi,drawable-ldpi。

就 是因为不同设备有不同的像素密度,所以同样的物理面积下,显示出的像素数量就不同了,比如2厘米 x 2厘米的大小的屏幕,只有让美工准备高清的图片放在drawable-hdpi才能让高像素密度的屏幕看到更加清晰的图片。反之,把高清的图片放在 drawable-mdpi文件夹和把中等高清的图片放在drawable-mdpi文件夹内不会有什么区别,因为像素密度低的硬件的屏幕只能显示那么多 的像素,显示不会变得清晰,放入高清图片会因为图片文件大小变大而会造成载入速度过慢等问题。

137

3 Responses to Android dip 与 px 的区别,像素密度的概念。

  1. 商务英语说道:

    写得不错哦~~~~~~~~~~~~~

  2. blog web说道:

    thank you for you share!!good post!! nicee!! keep go on!!

  3. 英语辅导说道:

    怎么不恩能够发表情呢

Leave a Reply

Name and Email Address are required fields.
Your email will not be published or shared with third parties.