2012-07-23 40 views
1

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

回答

6

Tim and a.d.对你有正确的推理。如果您想查看重新调整大小或以正确大小绘制的内容之间的比较,请使用可视化示例。如果有非常小的细节,效果总是更加明显。

enter image description hereenter image description hereenter image description here

首先是一个大的200×200(我们把它叫做xhdpi),第二个是简单的重采样适用于mdpi(75x75)相同的图像。第三个是重新设计的相同规格,但从75x75开始。正如您所看到的,第二个文本显着模糊,并且在重新缩放后的形状边缘存在一些伪像。

2

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

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

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

1

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

您还可以避免由于显示的每个图像都必须缩放而导致的性能下降,具体取决于您的应用程序需要做多少缩放才能显着提升性能而不执行这些操作随着视图正在向用户显示,“即时”。

最后,为每种尺寸提供适当的渲染图像将确保您的资源看起来更好。系统缩放并不完美,如果必须根据比例缩放图像的“清晰度”,将会导致图像“清晰”。如果它必须显着地扩展它们,这对用户来说是显而易见的。

相关问题