px
px(pixel): 像素,是指在由一个数字序列表示的图像中的一个最小单位。在Android中,无论屏幕密度多少,一个像素单位对应一个屏幕像素单位,不会根据屏幕密度自动缩放,因此一般不推荐使用px,某些情况可以用它来画细线。
dpi
dpi(dots per inch): 指每英寸上的像素,及屏幕像素密度。在不同尺寸的屏幕上,屏幕像素的大小可能不同,1px表示的长度也就不同,所以一般不用px。
dp
dp(density-independent pixel): 密度无关像素。无论屏幕密度是多少,1dp在设备屏幕上总是1/160英寸,因此在设置边距、内边距这些尺寸时,通常使用dp。
sp
sp(scale-independent pixel): 缩放无关像素。也是一种与密度无关的像素,这种像素会受用户字体偏好设置的影响,因此通常用它来设置屏幕上的字体大小。
pt,mm,in
类似于dp的缩放单位,允许以点(1/72英寸)、毫米、英寸为单位指定用户界面大小。但不常用,并非所有设备都能按照这些单位进行正确的尺寸缩放配置。
在Android中,通常会将dp,sp等缩放格式转化为px像素单位,因为px像素单位更加直观,只不过不方便我们直接使用;如果屏幕是1英寸160个像素,那么dp等价于px,这些缩放单位都是为了更容易进行开发,有着简单的转化关系。