Android中px,dp,sp的区别
2019-04-26 本文已影响23人
12313凯皇
一、px
pixel
,即像素,1px
代表屏幕上的一个物理的像素点,但px
单位不建议被使用,因为同样像素大小的图片在不同手机显示的实际大小可能不同。
二、dp
在讲dp
之前,需要先讲一个dpi
(dots per inch
),对角线每英寸的像素点的个数,它的计算公式如下:
其中,height
和weight
是长款的像素,平方和即为对角线的像素个数,size
即我们常说的5
寸手机、4
寸手机中的5
和4
,即对角线的长度。分辨率越高,dpi
越高。分辨率相同,屏幕对角线英寸数越小,dpi
越高。
而dp
也叫dip
,是device independent pixels
。设备不依赖像素的一个单位。在不同的像素密度的设备上会自动适配,比如:
在320 * 480
分辨率,像素密度为160
,1dp
= 1px
;
在420 * 800
分辨率,像素密度为240
,1dp
= 1.5px
;
计算公式:
三、sp
全称是scaled pisels
。这个主要用于项目中的字体大小。使用sp
作为单位,当用户通过手机设置修改手机字体的时候,sp
为单位的字体也会跟着改变。
总结
一般建议使用dp
作为控件大小单位,sp
作为字体大小单位。