1 dpi
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIyVGduV2QvwVe0lmdhJ3ZvwFM38CXlZHbvN3cpR2Lc1TPB10QGtWUCpEMJ9CXsxWam9CXwADNvwVZ6l2c052bm9CXUJDT1wkNhVzLcRnbvZ2LclXSE90drdFZ5x2RiZXUYpVd1kmYr50MZV3YyI2cKJDT29GRjBjUIF2LcRHelR3LcJzLctmch1mclRXY39zMzMzM0gTM5ETNwgDM0EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
size为屏幕尺寸。例如,小米2手机,分辨率1280x720,尺寸4.3。
代入公式得到小米2的dpi为341.53,约为342。
2 px
pixels(像素),1px代表屏幕的一个物理像素点,不建议使用。
3 dp
device independent pixels(设备独立像素),px=dp*(dpi/160)。
Android系统定义了四种像素密度:
低(120dpi)、中(160dpi)、高(240dpi)和超高(320dpi),
它们对应的dp到px的系数分别为0.75、1、1.5和2,
这个系数乘以dp长度就是像素数。
4 sp
scale-independent pixel(与缩放无关的抽象像素)。sp和dp类似但唯一的区别是:
Android系统允许用户自定义文字尺寸大小(小、正常、大、超大等等),
当文字尺寸是“正常”时,1sp=1dp,而当文字尺寸只有是“大”或“超大”时,
1sp>1dp。类似我们在windows里调整字体尺寸以后的效果,窗口大小不变,
只有文字大小改变。
编程建议:文字的尺寸一律用sp单位,非文字的尺寸一律使用dp单位。