Android应用程序 - 我们可以在运行时重复使用图像吗?

3
我们有一个安卓应用,在Android 1.6上会出现内存不足的错误。但是在2.0及以上版本上运行良好。我们正在尝试减少运行时内存使用量。
我们考虑重复使用图片,例如每个屏幕的背景图片。是否可以在应用启动时将背景图片加载到内存中,并在每个屏幕重复使用此缓存副本,而不是每个屏幕加载相同的背景图片,从而增加RAM的总占用空间?
我们知道还有许多其他的方式和最佳实践来处理运行时内存使用量。但是此时,我们只想知道这种“图像重用”方法是否真的可行?
如果是,我们该如何做?它是否真正能够节省内存,或者安卓操作系统是否仍会为每个屏幕创建多个相同资源的副本,无法从内存角度获得任何益处?
非常感谢您抽出时间阅读我的帖子。
2个回答

2

如果该背景图像是从资源中以Drawable形式加载的,则其位图数据已在所有以此方式创建的Drawable之间共享。因此,在您的特定情况下,它可能不会对您有所帮助。


0

是的,你可以重复使用图片。

通常在列表视图中,每行都包含相同的图像时使用这种方法。

在这种情况下,您可以在适配器的构造函数中一次获取位图,并在getView()方法中重复使用它,以便您不必为每一行加载它。该技巧在此处展示

在您的情况下,您可以在主活动的onCreate()方法中加载背景位图,将其保存为公共静态属性,然后在所有活动中重新使用它。

但我认为这并不会有太大的区别,而且还会增加代码负担。

由于您正在调整UI,请观看Romain Guy 2009年Google I/O演示文稿,如果您还没有看到的话。它展示了许多有用的技巧,可提高UI性能,特别是涉及位图操作时。


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