手机的屏幕由数千个称为像素 (px) 的小点组成。像素是构成图片的最小元素。制作图片或文字的像素数越多,它就会变得越清晰,并使智能手机屏幕更易于阅读。
屏幕分辨率是根据屏幕上的像素数来衡量的。屏幕分辨率是购买设备时常用的规格,但在为 Android 设计时实际上并没有那么有用,因为以像素为单位考虑屏幕忽略了物理尺寸的概念,而物理尺寸对于触摸设备来说确实非常重要。
与密度无关的像素(dp 或 dip) 允许设计人员创建以预期方式显示的资产,无论目标设备的分辨率或密度如何。
与密度无关的像素(dp 或 dip)等于基线密度下的一个像素或 160 dpi(每英寸点数)。
1 像素/1dp = 160 dpi/160 dpi
2 像素/1dp = 320 dpi(2x)/160 dpi
在哪里,
dpi 是每英寸的点数
因此,在 320 dpi 下,1 dp 等于 2 px。
公式
px/dp = dpi/160dpi
每英寸点数 (dpi) 是衡量显示屏上清晰度(即照明点的密度)的指标。给定图片分辨率的每英寸点数将根据整个屏幕尺寸而有所不同,因为相同数量的像素分布在不同的空间中。
使用与密度无关的像素有助于我们处理这样的情况,例如您拥有两个像素分辨率相同但空间大小不同的设备。假设在一个案例中,平板电脑和手机具有相同的像素分辨率,分别为 1280 x 800 像素 (160 dpi) 和 800 x 1280 像素 (320 dpi)。
现在,由于平板电脑处于基线密度 (160 dpi),其物理和密度无关像素大小相同,为 1280 x 800。另一方面,手机的像素密度更高,因此与密度无关的像素只有一半像素作为物理像素。所以一部手机有 400 x 640 密度的独立像素。因此,使用与密度无关的像素可以更容易地在脑海中想象出平板电脑比手机拥有更多的空间。
同样,如果您有两台屏幕尺寸相似但像素密度不同的设备,比如一台是 800 x 1280 像素 (320 dpi),另一台是 400 x 640 像素 (160 dpi),我们不需要为这两种设备定义完全不同的布局,因为我们可以根据两种设备相同的密度独立像素来测量资产。
800 x 1280 像素 (320dpi)=400 x 640 密度独立像素 (dp)
400 x 640 像素 (160 dpi)=400 x 640 密度独立像素 (dp)
与比例无关的像素(sp) 是字体大小的首选单位。
出于可访问性目的,Android 允许用户自定义其设备的字体大小。阅读文本有困难的用户可以增加其设备的字体大小。您通常可以在手机或平板电脑的显示设置中的字体大小下找到此选项。它通常也可以通过辅助功能设置获得。
对于与比例无关的像素,当设备的字体大小为正常或 100% 时,16 sp 与 16 dp 完全相同。但是当设备的字体较大时,例如 125%,16 sp 将转换为 20 dp 或 1.25 乘以 16。
如果您使用 dp 作为字体大小的单位,那么无论用户是否自定义设备的字体大小,该文本都具有特定的物理大小。使用 sp 单位将为视力受损的人带来更好的体验。
参考:Udacity,谷歌