마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

이미지 출력 시 out of memory 해결하려면 ?

–1 추천
한 activity내에서 대량의 이미지를 서버에서 다운받아 하나씩 뷰에 집어넣고 있거든요 ..

동적으로 보여줘야해서요 ..

Bitmap 으로 받아와서 imageview에 넣어서 추가하고 있는데

계속 메모리 부족하다고 나와요 ;;

근데 대량의 사진을 계속 보여줘야하는데 그상태에서 recycle을 할 수도 없고 ;

어떻게 해야할지 모르겠어요 ;;;

구조를 바꾸더라도 방법이 있으면 좀 알려주세요
할꺼없네 (600 포인트) 님이 2013년 6월 12일 질문

3개의 답변

0 추천
화면에 보여지고 있는 imageview의 bitmap하고 바로 보여질 가능성이 있는 imageview의 bitmap 몇개만 유지하고 있으면 메모리부족은 안나올텐데요..

그리고 이미지가 크다면 화면에 보여지는 사이즈로 재조정하고요..

 

풀HD급 이미지 수십,수백,수천장 처리해도 40메가바이트 안으로 다 처리되요..

풀HD급 이미지 디코딩할때 순간적인 메모리사용량이 높아지긴해요
ignitepaper (1,720 포인트) 님이 2013년 6월 12일 답변
화면에 보여지고 있는 imageview의 bitmap하고 바로 보여질 가능성이 있는 imageview의 bitmap 몇개를 어떻게 골라내나요 ?
imageview 높이가 다 제각각이라서요 ;;
그리고 imageview의 bitmap만 recycle하면 view는 그대로 유지가 되나요 ?
인터넷에 갤러리 소스 예제가 많으니 갤러리 소스 예제를 보시는게 좋을 것  같네요.. 이미지를 sd카드에서 읽어오는 부분만 네트웍으로 가져온다고 생각하세요.
0 추천
리스트뷰나 그리드 뷰를 사용하세요

그러면 알아서 시스템이 화면에 보이는 이미지만 처리합니다.
그후최초 (2,980 포인트) 님이 2013년 6월 13일 답변
0 추천

별다른 처리 없이 많은 이미지를 한 화면에서 처리하면 대부분의 환경에서는 결국 Out of memory가 발생할 수 밖에 없습니다. 

http://developer.android.com/intl/ko/training/displaying-bitmaps/cache-bitmap.html

위 링크의 메모리 캐시를 참조해보세요.

monal (4,210 포인트) 님이 2013년 6월 13일 답변
...