我应该支持哪些屏幕尺寸/密度组合来支持位图背景图片?

3
我正在编写一个应用程序,其中我需要一些全屏位图背景。根据我对Android文档中的支持多个屏幕的天真阅读,为了覆盖所有情况,我可能应该有每个位图的16个版本:所有配对的[small,normal,large,xlarge][ldpi,mdpi,hdpi,xhdpi]。这样做可以减少CPU缩放图像的工作量,但会造成巨大的存储成本。
然而,这似乎非常低效,原因如下:
  1. 并不是所有这些组合在实践中都存在。
  2. 由于我只是为每个物理大小渲染矢量艺术(不考虑DPI),所以像large/mdpi和normal/hdpi(两者都是〜480x854像素)这样的配对是重复的文件。
那么,我应该提供非常大的图像并让系统将它们缩小吗?接受大量重复的图像?避免问题并使用原始资源编写一些代码解决方案?还有其他想法吗?谢谢。
编辑:显然,您可以创建XML位图可绘制对象,它们别名实际位图。这解决了第二个低效参数。不过,我想知道,其他人在实践中提供哪些组合?
2个回答

0

如果您希望某个艺术品在显示屏dpi上显示时保持恒定大小,那么您只需要提供不同分辨率的图像。例如,图标或按钮就是这样的例子。

对于此处描述的背景图像,您并不关心图像dpi,而只关心x * y尺寸。因此,您不必生成尺寸与dpi的交叉乘积。您只需要考虑4个屏幕尺寸类别。

在4个屏幕尺寸类别中,您只需要存储其中一个较大的尺寸(xlarge或large),然后让框架根据需要进行缩放。您还可以通过编程方式进行缩放,以确保不改变背景的纵横比,并且不裁剪它。

另请参见适用于所有屏幕尺寸的Android游戏,这将有望吸引更好的答案。


-1

我建议为ldpi、mdpi、hdpi和可选的xhdpi(取决于您的目标用户)提供图像。这将使您能够很好地覆盖最常用的分辨率。

如果您最终感觉应用程序变得太大(无论是决定添加所有可能的图像大小还是其他原因),您也可以考虑允许您的应用程序移动到SD卡中。这样,存储空间就不再是问题了。(http://developer.android.com/guide/appendix/install-location.html


我担心应用程序本身的大小会太大。这些图像应该提供什么大小?我不希望操作系统在任何设备上放大任何可绘制对象。 - Hilton Campbell

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接