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

来源:互联网 发布:淘宝的宝贝描述分数 编辑:程序博客网 时间:2024/05/01 16:55

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

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

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

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

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

举个例子:

在240的像素密度下:

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

在160的像素密度下:

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

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

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

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


源地址http://www.waitingfy.com/?p=137

原创粉丝点击