이미지 어답터를 생성하고 거기에 arraylist<string>를 입력합니다.
스트링을 읽고 이미지를 불러서 그리드뷰에 출력하는데
12개 단위로 끊어서 출력하고 있습니다.
12개출력하고 버튼을 누르면 12개가 추가로 출력됩니다.
출력은 되는데.. 이상하게 스크롤을 내리면 1,2,3번에 있는 것들이 아래로 내려와 있습니다.
그걸 클릭하면 1,2,3번의 내용이 뜨는건아니고 거기에 원래 출력되야될 이미지가 출력됩니다.
그리드뷰에서 문제가 있는것같은데 어디서 문제인지 모르겠습니다.
혹시나 리스트에 입력이 잘못된것같아서.
버튼 누를때마다 list에 입력할때 0부터 시작하고 있습니다.
처음부터 다시 입력하는 거죠..
그래도 문제가 생기네요...
저도 그 문제 때문에 머리를 싸매고 있는데요,
gridView의 어댑터에서 getView를 호출하잖아요?
이때 처음에
if(convertView == null)
convertView = inflater.inflate(layout, parent, false);
라는 부분이 xml에 만들어 놓으신걸 이용해서 사용할 수 있는 틀을 만드걸꺼에요.
그런데, null일때만 다시 만드는 이유가 제가 알기로는 만드는데 시간이 더 걸려서
한번만 만들고 그 다음부터 만들었던거 재활용 한다고 들었어요.
이부분에서 뭔가 문제가 생긴게 아닐까요?
새로 불러들인 convertView가 이전의 imageView와 연결이 끊어지질 않아서가 아닐까 생각이드네요..
추가. gridView에서 화면에서 안보이게 되면 날려 버리고 보이게 되면 다시 불러오는 것 같아요.
메모리에서 제거하려면 해당 bitmap의 다른 것들과의 연결을 다 끊고 recycle() 하시면
지워질꺼에요.




추가 질문입니다. 제가 초보라 시스템에 대해 잘 모릅니다.
이미지를 서버(웹)에서 inputstream으로 읽어오고 이것을 drawable 로 그려줍니다.
이미지 출력후 다른 화면으로 전환대면 그 그려진 이미지는 어디에 있는 건지 알고 싶습니다.
메모리상에 저장되어 있는건지.. 아니면 출력하고 지워지는건지....
만약 메모리에 있다면 제거하는 방법이 무엇인지 알고싶습니다..