Android:使用不同像素密度的图像的目的?

时间:2012-07-23 20:58:50

标签: android dpi

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

3 个答案:

答案 0 :(得分:6)

蒂姆和a.d.有正确的推理给你。如果您希望在重新缩放或以正确尺寸绘制的内容之间进行比较,这是一个直观的示例。如果有非常小的细节,效果总是更明显。

enter image description here enter image description here enter image description here

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

答案 1 :(得分:2)

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

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

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

答案 2 :(得分:1)

通过为每个主要类别的屏幕密度提供已经呈现为适当大小的图像,您可以避免在代码中明确地进行缩放,这将使“代码更清晰”。

您还可以避免因显示的每个图像必须缩放而导致的性能消耗,具体取决于您的应用程序必须进行多少缩放,这可能会显着提升性能,从而无法执行这些操作“ “正在向用户显示视图。”

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