我知道这可能是一个愚蠢的问题,但我确实经历了如此多的材料和链接,但仍然不太了解。在Android开发文档的“支持多屏”一节中,它是这样介绍dp的:
与密度无关的像素 (dp)
定义 UI 布局时应使用的虚拟像素单位,以与密度无关的方式表示布局尺寸或位置。与密度无关的像素相当于 160 dpi 屏幕上的一个物理像素,这是系统为“中等”密度屏幕假定的基线密度。在运行时,系统会根据使用中屏幕的实际密度,根据需要透明地处理 dp 单位的任何缩放。dp 单位到屏幕像素的转换很简单:px = dp * (dpi / 160)。例如,在 240 dpi 的屏幕上,1 dp 等于 1.5 个物理像素。在定义应用程序的 UI 时,您应该始终使用 dp 单位,以确保您的 UI 在不同密度的屏幕上正确显示。
基本上我理解这样一个事实,即具有更高 dpi 的屏幕在单个物理英寸中会有更多的像素,这意味着这种屏幕中的 dp 将等于更多的物理像素(px)。
但是根据上面的换算公式(粗体),在dpi较高的屏幕(例如240 dpi的屏幕)中,a px = (240 / 160) * dp = 1.5dp。这似乎意味着在更高 dpi 的屏幕中 px 将等于更多 dp。这看起来与我之前的理解相冲突。
所以,拜托,谁能帮我解决这个棘手的问题。非常感谢,真的。