2011-02-04 4 views
0

Я создал одну игру, в которой используются изображения, а моя игра в портретном и ландшафтном режимах. У меня 2 другой макет для этого при переключении с 1 ориентации на другой, после выполнения этого 5 6 раз, он дает ошибку принудительно близкую Ошибка, как:Ошибка OutofMemory в Android

Вызванный: java.lang.OutOfMemoryError: размер битовой карты превышает бюджет ВМ

Кто-нибудь знает решение? есть ли способ очистить все изображения в ориентации переключения? заранее спасибо

+3

Существует много вопросов, заданных ранее. Проверьте этот http://stackoverflow.com/search?q=OutOfMemoryError%3A+bitmap+size+exceeds+VM+budget –

+0

djk тоже этот пост имеет ссылку на такие вопросы http://stackoverflow.com/questions/4656961/how -to-fix-error-in-bitmap-size-превышает-vm-budget/4657285 # 4657285 & yeah +1 @Creative MITian – 100rabh

ответ

1

я получил решение по этой ссылке http://android-developers.blogspot.com/2009/01/avoiding-memory-leaks.html

У меня есть много изображений устанавливают в ImageView каждый раз, когда изменения ориентации. я просто сделать фоновый образ статичной и проблема решена

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); 
    } 
} 

это будет только установить drawble один раз.

надеюсь, что это поможет кому угодно.

Смежные вопросы