android如何管理不同的DPI

How does android manages different DPI

我已经阅读了文档,也从其他来源提取了数据,但无法理解这个非常基本的东西。

在 android 中,我们使用 DP,因为它响应灵敏,并且相对于屏幕尺寸会拉伸 resources

我的问题是不同屏幕的密度不同。让我们考虑以下 2 个屏幕密度。

  1. mdpi- 160dpi
  2. hdpi-240dpi

假设我将图像的 width-height 定义为 20dpX20dp 人们说不要使用 px,因为它因设备而异,但 dpi 也因设备而异,

我知道它工作正常,但我想了解这背后的科学原理,当有不同 dpi's 不同的屏幕时,它是如何管理的。

据我了解,屏幕的 1dpi 不会等于其他屏幕的 1dpi

请指导我。我已经放弃了。

在考虑数字屏幕上某些东西的 "size" 时,需要考虑两件事:对象的大小(以像素为单位)和对象的物理大小。

当您以 像素 指定对象的大小时,它在不同密度的屏幕上将具有不同的 物理 大小。

以两台 5" 屏幕的设备为例。设备 A 的显示屏为 1920 x 1080 像素,而设备 B 的显示屏为 960 x 540 像素。两者的物理尺寸相同,但像素数量却大相径庭在屏幕上。如果您有一张 50 像素宽 x 50 像素高的图像,该图像在设备 A 上会显得小得多,因为设备 A 上的像素排列得更紧密。

DP 是一个允许我们在这些不同的设备上为对象指定一致大小的单位。如果您指定一个对象应为 160dp 宽,那么它在每个设备上的宽度大约为一英寸。在 mdpi 设备上为 160 像素,但在 xhdpi 设备上为 320 像素。