,这些单位有
什么区别?
相信每个
Android
新手都会遇到这个问题,希望这篇帖子能让你不再纠结。
px
:
即像素,
1px
代表屏幕上一个物理的像素点;
px
单位不被建议使用,因为同样
100px
的图片,在不同手机上显示的实际大小可能不同,
如下图所示(图片来自
android
developer
guide
,下同)。
偶尔用到
px
的情况,是需要画
1
像素表格线或阴影线的时候,用其他单位如
dp
会显得模
糊。
dp
:
这个是最常用但也最难理解的尺寸单位。
它与
“
像素密度
”
密切相关,
所以首先我们解释一下
什么是像素密度。假设有一部手机,屏幕的物理尺寸为
1.5
英寸
x2
英寸,屏幕分辨率为
24
0x320
,则我们可以计算出在这部手机的屏幕上,每英寸包含的像素点的数量为
240/1.5=1
60dpi
(横向)或
320/2=160dpi
(纵向),
160dpi
就是这部手机的像素密度,像素密度的
单位
dpi
是
Dots
Per
Inch
的缩写,即每英寸像素数量。横向和纵向的这个值都是相同的,
原因是大部分手机屏幕使用正方形的像素点。
不同的手机
/
平板可能具有不同的像素密度,例如同为
4
寸手机,有
480x320
分辨率的也有
800x480
分辨率的,前者的像素密度就比较低。
Android
系统定义了四种像素密度:低(
12
0dpi
)、中(
160dpi
)、高(
240dpi
)和超高(
320dpi
),它们对应的
dp
到
px
的系数分别
为
0.75
、
1
、
1.5
和
2
,这个系数乘以
dp
长度就是像素数。例如界面上有一个长度为
“80dp”
的图片,那么它在
240dpi
的手机上实际显示为
80x1.5=120px
,在
320dpi
的手机上实际显
示为
80x2=160px
。如果你拿这两部手机放在一起对比,会发现这个图片的物理尺寸
“
差不
多
”
,这就是使用
dp
作为单位的效果,见下图。
版权声明:本文为weixin_39850167原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。