1

我知道使用具有不同 DPI 的图像在 Android 中是一种相当普遍的做法。但是我并没有真正看到它的目的,为什么我们不能只使用一个超大的图像,然后在程序中对其进行缩放?我知道如果我们不使用不同 DPI 的图像,我们可能需要进行额外的计算,但除此之外,还有其他原因吗?

4

3 回答 3

6

蒂姆和广告对你有正确的推理。如果您想查看重新缩放或以正确大小绘制的内容之间的比较,这是一个视觉示例。如果有非常小的细节,效果总是更明显。

在此处输入图像描述 在此处输入图像描述 在此处输入图像描述

第一个是一个大的 200x200(我们称之为 xhdpi),第二个是为 mdpi (75x75) 重新采样的相同图像。第三个重新设计为相同的规格,但从 75x75 开始。如您所见,第二个文本明显模糊,并且在重新缩放的形状边缘存在一些伪影。

于 2012-07-23T21:26:33.110 回答
2

您可以获得针对屏幕密度优化的图像。如果你把它全部留给xhdpi,你一定知道在这个过程中可能会丢失一些重要的像素,因为你没有注意这一点。

如果您不关心速度和准确性,并且您认为人们不会注意到丢失了重要的像素,那么可以使用这种方法。

不仅如此,如果您自己缩放图像(例如使用权重),您根本不需要将它们放在 dpi 文件夹中 - 您可以将它们放在 drawable-nodpi 文件夹中。

于 2012-07-23T21:02:30.897 回答
1

通过为每个主要的屏幕密度类别提供已经渲染为适当大小的图像,您可以避免在代码中显式地进行缩放,这将使代码“更干净”。

您还可以避免因显示的每个图像都必须缩放而导致的性能消耗,具体取决于您的应用程序必须进行多少缩放" 因为视图正在向用户显示。

最后,为每种尺寸提供适当渲染的图像将确保您的资源看起来更好。系统缩放并不完美,如果它必须缩放它们,则会损害图像的“清晰度”。如果它必须显着扩展它们,这将是用户注意到的。

于 2012-07-23T21:03:24.117 回答