我收到一个OutOfMemoryError异常,在我的应用程序主屏幕的几次加载后抛出。该应用程序加载关于位置的数据和背景图像。有几个选项可供选择,并且在5-6个不同的位置选择之后,堆超过192 MB,并且出现错误。我相信这些问题归根到底是我的位图使用不当。我的代码很长,也不清楚,所以我会举一个例子,希望有人能帮助我,因为我认为我没有掌握关于图像内存管理的基础知识(我已经阅读过文档并进行了大量搜索,我正在寻找理想实际上与此人交谈)。OutOfMemoryError - 用位图破坏堆大小
我有一个如果有5个条件,每个返回一个不同的图像。 我将图像转换为位图并将其设置为我的主布局的新可绘制源。
然后我再次这样做,相同的功能,但对于不同的位置,不同的图像。
经过几次这样做,所有这些被加载的图像似乎都留在内存中,并堵塞它,导致错误。为了保持它非常简单,我应该在将这些不同的图像加载到我的布局背景之间执行哪些步骤来防止此问题?
192MB远远大于你会在很多手机中得到。通常你会想下降到32MB。幸运的是,这些设备通常具有较低密度的屏幕,因此您不必将尽可能多的像素推到屏幕上。这是一个有用的资源来处理位图:http://developer.android.com/training/displaying-bitmaps/index.html – asdasd 2014-11-24 17:45:19