【发布时间】:2013-12-31 14:11:48
【问题描述】:
到目前为止,在我的应用程序中,我大多只包含高密度位图,并在 dp 中声明了我的 ImageView 大小(当然)。我再次浏览了Supporting Multiple Screens,但我仍然看不到包含低密度位图的意义,因为系统只会为低密度设备适当地缩放它们。
我无法想象在 Photoshop 中缩小位图会比 Android 系统的缩放提供更好的图像。在 Photoshop 中缩放位图可能很耗时,尤其是如果您想稍后更改某些内容。额外的位图会在一定程度上增加 .apk 的大小。
我可以看到,当系统必须在运行时执行缩放时,性能可能会受到影响,这是否会引起注意?我还缺少其他东西吗?
【问题讨论】:
-
来自官方开发者网站的引述:您不需要为每种屏幕尺寸和密度组合提供替代资源。该系统提供了强大的兼容性功能,可以处理在任何设备屏幕上呈现应用程序的大部分工作,前提是您已使用允许其优雅调整大小的技术实现您的 UI(如最佳实践中所述)
-
但是 - “为了确保您的位图看起来最好,您应该包括针对不同屏幕密度的不同分辨率的替代版本。” - 为什么不只包括最高密度的版本?
-
再次引用(来源相同):虽然系统会根据当前屏幕配置缩放您的布局和可绘制资源,但您可能希望在不同的屏幕尺寸上对 UI 进行调整并提供位图可绘制资源针对不同的密度进行了优化。这基本上重申了本文档前面的信息。如果您需要准确控制应用程序在各种屏幕配置上的外观,请在配置特定的资源目录中调整布局和位图可绘制对象。
-
因此,只有当您想掌握应用在不同屏幕上的外观时,您才必须包含其他资源,但是如果您对 Android 系统为您执行此任务感到满意,那么您最好使用资源在 HDPI 中。
-
我听说:Photoshop 具有比 Android 更好的缩放算法,而且在高端设备上和从 JB 开始的性能影响很小。话虽如此,我希望看到一些基准来支持这些断言。 IMO 的最佳做法是在不同设备(1 个低端和 1 个高端)和不同的 Android 版本(JB 之前和 JB 之后)上使用您的应用程序中的几个资产测试这两种技术,看看它是如何进行的.
标签: android bitmap android-resources