背景
出售具有各种屏幕尺寸和像素数的 Android 设备。很难为它们中的每一个创建布局设计。
例如,在屏幕上显示 100 像素图像的设计情况下,会出现以下问题。
- 应缩放图像以适应设备像素屏幕尺寸
- 由于不同的设备可能具有不同的像素密度,因此具有相同像素大小的屏幕可能会因物理尺寸不同而看起来不同
因此,Android 提供了 dp 和 sp 等抽象单位,以方便处理,无论屏幕大小或分辨率如何。
像素密度及对应划分
在Android中,终端的类型是按照dpi的大小来分类的,“每英寸有多少像素”
| 通用密度 | 放大 | 解释 |
|---|---|---|
| 低密度脂蛋白 | x0.75 | 应用于低密度 (ldpi) 屏幕 (~120dpi) 的资源 |
| mdpi | x1 | 应用于中等密度 (mdpi) 屏幕 (~160dpi) 的资源(基本密度)。 |
| hdpi | x1.5 | 应用于高密度 (hdpi) 屏幕 (~240dpi) 的资源 |
| xhdpi | x2 | 适用于超高密度 (xhdpi) 屏幕 (~320dpi) 的资源 |
| xxhdpi | x3 | 应用于超高密度 (xxhdpi) 屏幕 (~480dpi) 的资源 |
| xxxhdpi | x4 | 超高密度 (xxxhdpi) 屏幕 (~640dpi) 的资源 |
从表中可能很难理解,但是如果您为布局指定 1dp,则以 px 为单位的实际大小如下所示。
| 通用密度 | dp | 像素 |
|---|---|---|
| 低密度脂蛋白 | 1 | 0.75 |
| mdpi | 1 | 1 |
| hdpi | 1 | 1.5 |
| xhdpi | 1 | 2 |
| xxhdpi | 1 | 3 |
| xxxhdpi | 1 | 4 |
0.75 像素?1.5 像素?
关于“4的倍数”
从上表可以看出 ldpi 和 hdpi 的 px 大小相当不完整。
因此,为了在 x0.75 和 x1.5 等半成品放大率下也能显示整数,将 dp 指定为“4 的倍数”。
通过以 4 的倍数指定 dp,每个 dpi 值为
| 通用密度 | dp 放大倍率 | 像素比例 |
|---|---|---|
| 低密度脂蛋白 | x4 | x3 |
| mdpi | x4 | x4 |
| hdpi | x4 | x6 |
| xhdpi | x4 | x8 |
| xxhdpi | x4 | x12 |
| xxxhdpi | x4 | x16 |
因此,通过指定 4 的倍数,px 始终指定为整数,因此即使在实际终端上也可以清楚地显示。
在布局设计中指定尺寸时,一定要注意4的倍数。
原创声明:本文系作者授权爱码网发表,未经许可,不得转载;
原文地址:https://www.likecs.com/show-308627935.html