上回介绍了Android 的屏幕适配,很多同学表示看了之后云里雾里的,尤其是 dp 这个东西,还要进行数学换算,简直是要命了。所以我决定在介绍 iOS 之前先花点时间再帮大家理解下 Android 里的 dp。
1、 痛点是什么?
痛点就是 Android 的设备碎片化非常严重,要想一一适配,设计师、开发和测试都压力山大。同一套标注,在一台手机上是一个长度,一个样子,放到另一台手机上就变形了(比如前文举的例子,如果用px,会出现不同手机大小不一样的情况)。所以大家迫切需要一套write once,run anywhere的通用度量单位,那就是 dp 了。
2、 诉求是什么?
诉求就是要求在不同分辨率,不同屏幕密度上的手机上,同样 dp 大小的 UI 元素,看起来是一样大的。所谓看起来一样大,实际上就是要求视觉上看到的物理尺寸是差不多的,所以前文说你可以把dp 看做是一个类似厘米、英寸这样的绝对的长度单位,大约160dp 等于 1 英寸。比如说,同样都是 720p 的屏幕,一台 Nexus4,4.7 寸的,另一台是 6 寸的华为第一代 Mate,从直观上来讲,Mate 屏幕会不如Nexus4 显示细腻,就是所谓的颗粒感严重。从理论上讲,就是 Mate 的屏幕密度太低了。现在设计师出了一个图标,长为 720px,放在两台手机上,都可以占满宽度,但是明显 Mate的 720px 要比Nexus4 的720px 在尺寸上长不少。显然这是不合要求的。