ListView가 아닌 scrollView로 썸네일을 만들려고 합니다.


아래로 계속 내리다보면 scrollView에서 위치를 표시해 주는 바의 위치에 따라서


새로운 이미지를 서버에서 다운받아서 계속 뿌려주는식의 프로그래밍을 하려고 합니다.


처음에 50개를 호출해서 스크롤을 아래로 내리면 처음에 있었던 50개는 메모리 해제 되고


새로운 50개를 호출합니다.


이 부분에서 이전 50개의 이미지 메모리를 해제하려고 recycle()함수를 사용하였습니다.


((BitmapDrawable)(imageView.getDrawable())).getBitmap()로 해당하는 이미지뷰에서  이미지를 받아오고


해제하려고 하는데. 아무리 해제를 해도 결국 out of memory메세지가 뜹니다.


제 생각에는 이미지를 서버에서 받아오는 과정에서 


BufferedInputStream bis = new BufferedInputStream(conn.getInputStream(), nSize);


bitmap = BitmapFactory.decodeStream(bis);


이부분에서 BitmapFactory가 메모리 릭을 계속 내고 있는것이 아닌가 생각하고 있습니다.


stream에서 이미지파일로 변환하는 과정에서 BitmapFactory를 다른것으로 대체할 수 있을까요?


Drawable처럼 메모리릭이 안나고 stream 변환 과정에서 이미지를 가져오는 방법을 알고 싶습니다.


프로그램의 전체적인 루프는 이렇습니다.


1 . 이미지뷰를 50개 생성한다.


2 . 이미지뷰를 한개 생성할때 마다 스레드로 이미지 다운로드를 한다.


3 . 스레드는 AsyncTask이며 이미지 다운로드를 다 한후 UI스레드에 이미지를 넘겨주어 미리 생성되어진

이미지뷰에 넣어준다.


4 . AsyncTask는 이미지 하나를 생성할때마다 새로 생성된다. 50개의 이미지를 불러올때 50개 생성.


5 . 스크롤을 아래로 내린다. 전체 높이의 90%까지 왔을 경우 


6 . 새로운 이미지 50개가 생성되고, 이전 이미지 50개는 recylce() 한다.


도와주세요 고수님들~



p.s trying to use a recycled bitmap 이란 에러가 왜나는지에 대해서 조금 자세하게


설명해주세요~