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

bitmap recycle질문드립니다.

0 추천
for (int i = 0; i < imageSize; i++)
   {
      imageViews[i].setImageBitmap(imgbitmap);
     vf.addView(imageViews[i], new ViewGroup.LayoutParams(
      ViewGroup.LayoutParams.FILL_PARENT,
      ViewGroup.LayoutParams.FILL_PARENT));
        //resizedBMs[i].recycle();
   }

이렇게 이미지를 비트맵으로해서 저장시킬려고하는데

주석처리를 안하면 메모리때문에 안되고

주석처리를하면 canvas trying to use recycled bitmap in createbitmap이렇게 나오고

리사이클을 언제해야할까요...
익명사용자 님이 2014년 9월 30일 질문

1개의 답변

0 추천
주신 정보로는 ImageView에서 해당 이미지를 사용하지 않을 경우 recycle()하시면됩는데요

위 소스 보면 imageSize만큼 이미지뷰에 imgBitmap을 보여주게 되는데요.

이경우 imgBitmap을 해제 해버리면 모든 이미지뷰들이 보여줘야할 Bitmap을 잃어버리게 됩니다.

 

즉 해제할 필요 없습니다. 현재 소스보면.
q1212 (26,020 포인트) 님이 2014년 9월 30일 답변
imagesize라는 변수가 이미지갯수에요..
이미지를30개정도 저장해서 하면 15개정도까지
imageview[i].setimage를 하고 그뒤에는 outofmemory가 나와서 질문드렸습니다..
imgbitmap은 resizebms이고 bitmapfactory.options도 설정했습니다.
largeheap하면 임시방편으로 되긴되는데 근본적인문제를 해결하고싶습니다..
...