我正在编写一个需要大量全屏位图背景的应用程序。根据我在 Android 文档中对Supporting Multiple Screens的天真阅读,为了涵盖我的所有基础,我可能应该有每个位图的 16 个版本:所有对[ small, normal, large, xlarge ]
和[ ldpi, mdpi, hdpi, xhdpi ]
. 这应该会减少 CPU 为缩放图像而必须做的工作,但会带来巨大的存储成本。
然而,这似乎非常低效,原因有两个:
- 并非所有这些组合都在实践中被发现。
- 因为我只是为每个物理尺寸渲染矢量图(不考虑 DPI),所以像 large/mdpi 和 normal/hdpi (都是 ~ 480x854 像素)这样的对是重复文件。
那么,我应该只提供非常大的图像并让系统按比例缩小它们吗?咬紧牙关并提供大量重复的图像?完全避免这个问题并用原始资源拼凑一些代码解决方案?还有其他想法吗?谢谢。
编辑:显然,您可以创建 XML 位图可绘制对象,其别名为实际位图。这解决了第二个效率低下的论点。不过,我想知道,其他人在实践中提供了哪些这些组合?