I have created one game which uses images and my game is in portrait and landscape mode. I have 2 different layout for that When i switch from 1 orientation to other, after doing this 5 6 times, it gives force close error Error is like :
Caused by: java.lang.OutOfMemoryError: bitmap size exceeds VM budget
Anyone know the solution? is there any way to clean up all images in switching orientation ? thanks in advance
-
3There are many questions has been asked earlier. Check this stackoverflow.com/…Vikas Patidar– Vikas Patidar2011年02月04日 05:24:34 +00:00Commented Feb 4, 2011 at 5:24
-
djk also this post has link to such issues stackoverflow.com/questions/4656961/… & yeah +1 @Creative MITian100rabh– 100rabh2011年02月04日 08:40:35 +00:00Commented Feb 4, 2011 at 8:40
2 Answers 2
i got the solution from this link http://android-developers.blogspot.com/2009/01/avoiding-memory-leaks.html
i have a lots of images are setting in imageview every time orientation changes. i just make backgorund image static and problem solved
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);
}
}
this will only set drawble one time.
hope this will help anyone.
Comments
@djk Oh yeah, it will load drawable one time, but will also create memory leak. This article explains why: http://android-developers.blogspot.com/2009/01/avoiding-memory-leaks.html