1

我开始为我的游戏获取 OutOfMemoryError。我认为这是因为我为每个动画创建了新的位图(因此同一图像有多个位图),但后来我创建了一个 ImageLoader 类,只加载每个位图一次,然后需要图像的对象只使用对他们。

但是,我的游戏中有很多用于动画、背景、项目等的图像。我刚刚添加了一些项目,现在我不断收到错误消息。

其他游戏如何处理大量图像?我敢肯定,许多其他游戏的图像比我的多,并且仍然可以避免此错误。

有没有比我一直在做的不同/更好的方法来实现 ImageLoader?

非常感谢,伙计们!

4

1 回答 1

2

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

重要的是要知道您的应用程序必须使用多少内存,并且不要超过它。您可以设置 LRU(最近最少使用)缓存,以确保位图的总内存占用保持在特定大小以下。您只需将位图插入缓存,一旦缓存达到其最大允许大小(您指定的大小),它将开始卸载一段时间未使用的位图。

Android 文档中的这篇文章中有一些非常好的信息,包括代码片段。

于 2012-10-03T03:17:00.073 回答