px
px就是像素的意思pixel,由picture和element两个单词组成。由于安卓手机五花八门,像素分辨率更是杂乱,因此px不常使用。
dp
想了解dp就必须先知道dpi这个概念。dpi就是dots per inch,每英寸上的像素点数。对于手机来说,相同的5英寸手机,有720P和1080P的分辨率就是1280*720像素和1920*1080像素,此时1080P的dpi就要远高于720P。而dp=px\dpi\160,也就是说dp是和手机设备的dpi有关系的。当设置相同的320dp的时候,在相同尺寸手机设备的长度就是相同,从而消除了不同手机分辨率不同的问题。
sp
sp的出现就是为了解决字体随系统设置变化的问题。因为手机系统设置字体可调,当调整时,sp会随着手机设置字体大小变化。而此时dp依旧不变。所以dp用来定义控件,而sp用来定义字体会比较好。