Android中的OutofMemory错误

时间:2011-02-04 05:17:52

标签: android

我创建了一个使用图像的游戏,我的游戏是纵向和横向模式。 我有2种不同的布局 当我从1个方向切换到另一个方向时,这样做5次6次后,它会产生力关闭错误 错误就像:

引起:java.lang.OutOfMemoryError:位图大小超过VM预算

有人知道解决方案吗?有没有办法清理切换方向的所有图像? 提前谢谢

2 个答案:

答案 0 :(得分:1)

我从这个链接得到了解决方案 http://android-developers.blogspot.com/2009/01/avoiding-memory-leaks.html

每次方向改变时,我都会在imageview中设置大量图像。 我只是使backgorund图像静止并解决了问题

private static Drawable BackgroundP;
private static Drawable BackgroundL;

if (conf.orientation == Configuration.ORIENTATION_LANDSCAPE){
   if(BackgroundL == null){
      BackgroundL = getResources().getDrawable(R.drawable.backgroundland);
   }
} else {
   if(BackgroundP == null){
      BackgroundP = getResources().getDrawable(R.drawable.backgroundport);
   }
}

这只会设置一次抽奖。

希望这对任何人都有帮助。

答案 1 :(得分:1)

@djk哦是的,它会加载drawable一次,但也会造成内存泄漏。 本文解释了原因:http://android-developers.blogspot.com/2009/01/avoiding-memory-leaks.html