2017 Material Design中文完整版:第四章节第二节《布局:单位和尺寸》
【站酷首发】10大章79小节重译!半年心血只为让更多人正确认识、学习MD。由于单篇文章字数限制,全文将分为N篇文章陆续发布。
有些单位在不同的语境中有着不同的含义。这章讨论的是设备独立像素(dp)、可缩放像素(sp)以及其他像素密度概念。
每英寸拥有的像素被称为“像素密度”。高密度屏幕比低密度屏幕每英寸拥有的像素高。因此UI元素(如按钮)在低密度屏幕上显示得更大而在高密度屏幕上显示得更小。
屏幕分辨率是指存在于显示器中的总的像素数量。
像素密度=√(X的平方+Y的平方)/ Z(X:屏幕长度像素;Y:屏幕宽度像素;Z:屏幕尺寸)
相关链接
高密度屏幕
设备独立像素(也叫做”dips“),它一个是灵活的单位。在开发Android应用时,使用dp能够统一不同像素密度的手机/平板中的UI元素。

1dp等于160dpi中的1px:
如果设计稿是使用px,那么在写CSS时需要换算成dp或sp来进行开发。
| 像素密度 | 像素 | 设备独立像素 |
| 120 | 180px | |
| 160 | 240 px | 240dp |
| 240 | 360 px |
如果你有三个不同像素密度的屏幕(如上表数据),屏幕大小都是1.5英寸,那他们的设备独立像素依旧是240dp。
在开发Android时,sp的功能与dp相似,但sp只用于字体。默认sp与dp的值是一样的。可以理解为文字的大小一律用sp单位,非文字的大小一律使用dp单位。
sp和dp之间的主要区别在于sp会保留用户的字体设置。需要辅助功能调节字体大小需求的用户可以按自己偏好设置字体大小。
计算dp的方式:dp=(像素(单位px)* 160)/像素密度(单位dpi)
举个例子:一个 32 x 32 px的icon在一个像素密度为320的屏幕上显示效果为 16 x 16 dp。
通过换算,图像可以缩放到不同分辨率的屏幕上并且看起来效果都一样:
| 屏幕分辨率 | dpi | 像素比例 | 图像尺寸(像素px) |
| xxxhdpi(超超超高) | 640 | 4.0 | 400 x 400 |
| xxhdpi(超超高) | 480 | 3.0 | 300 x 300 |
| xhdpi(超高) | 320 | 2.0 | 200 x 200 |
| hdpi(高) | 240 | 1.5 | 150 x 150 |
| mdpi(中) | 160 | 1.0 | 100 x 100 |




































