건방진프로그래머 님께서
"AnimationDrawable 이거 잘못사용하면 메모리릭의 주범이 됩니다~~~"
라고 하셨는데, 그럼 이거 말고 어떤 방법으로 표현해야 할까요?
책에 제가 원하는 정보가 별로 없어서, 자꾸 물어보게됩니다ㅠㅠ;
도와주세요 개발자 분들ㅠㅠㅠ;
아 제가 하려는건 움직이는 이미지뷰를 만드는 겁니다.ㅎㅎ
네 맞습니다.. 비트맵 recycle 해줘야합니다.....
저 같은경우는 SD카드에 있는 이미지 10장을 불러서 AnimationDrawable 만들어서 돌려었는데..
왔다갔다하니까.. 메모리릭으로 뻗더군요... 그래서 지금현재쓰고있는 이미지를 제외한 나머지 이미지는 recycle해주고
핸들러로 이미지 바꿔치기했네요
정말 감사합니다ㅎㅎ.. 그런데 제가 하나를 가르쳐 주시면 반정도 배워 먹는 놈이라 그런지.. 실제 사용법을 모르겠네요. Activity가 시작되면, 비트맵을 로딩해서 뷰에 넣어주고, 끝날때 리사이클을 시켜주었습니다. 여기까지는 잘됐습니다. 근데 다시 Activity를 호출해서 해당 뷰를 보여주려고 하면 오류가 발생합니다.. recycle이 동일한 비트맵을 한 번만 만들고, 재사용하는게 아닌가요?ㅠ;
void setFrame() {
f1 = (BitmapDrawable)getResources().getDrawable(R.drawable.ok_01);
}
void setFrameRecycle() {
((BitmapDrawable)getResources().getDrawable(R.drawable.ok_01)).getBitmap().recycle();
}
시작할때 setFrame을 해줬구요.
끝낼때 setFrameRecycle을 했습니다.
ㅠㅠ;




해도 되요 ^^
다만 재사용하지 않는 이미지들은 모두 GC 처리해줘야하죠
요건 구글에서 Android MemoryLeak 으로 검색하시면 이미지 GC 해주는 방법 나와요