gpt4 book ai didi

android - 使用 dip 的目的是什么?

转载 作者:行者123 更新时间:2023-11-29 17:56:17 25 4
gpt4 key购买 nike

我是 Android 开发的新手,我正在努力使我的应用程序适应各种分辨率。我最近听说了 dip 的概念,但我不明白这个单元的目的。我知道无论屏幕分辨率如何,它都允许显示具有相同物理尺寸的内容。

但问题是它不适用于不同的屏幕密度。我的意思是,如果我定义一个宽度为 80dip 的图像,那么在 160dpi 屏幕和 320dpi 屏幕上结果不会相同。因此,如果我每次都要编写一些代码以使组件适应设备,我就不会真正理解这个单元的目的。

我如何在 xml 中定义布局(无需任何代码,不需要:/)以便此 View 在每个设备上都相同(或几乎相同)?

我真的不明白为什么不能在布局 (xml) 中使用百分比而不是那种单位。

非常感谢您的帮助。

PS:对不起我的英语:(

最佳答案

dip(也称为 dp)的概念是无论显示器的物理像素密度如何,都具有相同大小的虚拟像素。

1dp = 1 pixel at 160 pixels/inch (medium density display—mdpi)

在较高的像素密度下,1dp 大于一个物理像素,而在较低的密度下,需要超过 1dp 才能达到一个物理像素的大小。

如果您以 px 为单位指定大小,则您指定的是物理像素,在高密度设备上,同一对象将显得更小。

图像通常根据它们所在的资源文件夹进行缩放。如果将 .png 文件放在 /res/drawable 中,系统会假定它的大小适合 mdpi——160 像素/英寸的显示密度。如果实际显示恰好是 240 像素/英寸 (hdpi),系统会在加载图像时自动将图像缩放 1.5 倍(= 240/160)。结果是图像将在所有屏幕密度上以相同的物理尺寸显示。

您可以使用特定于密度的资源文件夹(/res/drawable-mdpi/res/drawable-hdpi 等)为不同的密度提供不同的图形;当系统缩放将图像质量降低到 Not Acceptable 程度时,通常会这样做。您还可以将图形放在 /res/drawable-nodpi 中以抑制这种缩放。

有关详细信息,请阅读教程 Supporting Different Densities

关于android - 使用 dip 的目的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19126676/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com