【问题标题】:What is the purpose of including lower density bitmaps?包含较低密度位图的目的是什么?
【发布时间】: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


【解决方案1】:

市场上仍然有很多低端设备(屏幕和性能)。 为了优化起见,至少应包括 mdpi 和更大。

【讨论】:

  • 我总是将 ldpi 包含到 xxhdpi,实际上
  • 不再需要创建 ldpi 资产。这些设备很少见,平台只会缩小 mdpi。阅读:developer.android.com/design/style/iconography.html
  • 我还有一些 ldpi 设备。我希望我的应用看起来很完美,而不是缩小。
猜你喜欢
  • 2015-09-10
  • 1970-01-01
  • 1970-01-01
  • 2017-01-26
  • 2021-01-18
  • 1970-01-01
  • 1970-01-01
  • 2014-04-13
  • 2011-06-26
相关资源
最近更新 更多