Android Bitmap OutOfMemoryError +游戏如何处理大量图像?

时间:2012-10-03 03:00:20

标签: java android memory

我开始为我的游戏获取OutOfMemoryError。我以为是因为我为每个动画创建了新的Bitmaps(因此有相同图像的多个Bitmaps),但后来我创建了一个ImageLoader类,只加载每个Bitmap,然后需要图像的对象才使用引用它们。

然而,我的游戏中有很多动画,背景,物品等等。我刚添加了一些项目,现在我不断收到错误。

其他游戏如何处理大量图片?我相信很多其他游戏的图像比我的多,但仍然可以避免这种错误。

实现ImageLoader的方法是否比我一直在做的更好/更好?

非常感谢,伙计们!

1 个答案:

答案 0 :(得分:2)

游戏开发人员通过花费大量时间优化图像大小和利用内存缓存来解决这个问题。

了解您的应用必须使用多少内存并且不要超过它非常重要。您可以设置LRU(最近最少使用)缓存,以确保位图的总内存占用量保持在一定的大小。您只需将位图插入缓存中,一旦缓存达到其允许的最大大小(您指定的内容),它将开始卸载暂时未使用的位图。

来自Android文档的this article中有一些非常好的信息,包括代码段。