背景

出售具有各种屏幕尺寸和像素数的 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

相关文章: