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

커스텀리스트뷰에서 이미지 다운로드 및 표시할때 문제가 있습니다.

0 추천
안녕하세요.

커스텀리스트뷰에서 각 뷰마다 ArrayList에 저장되어 잇는 해당 url에 있는

이미지를 다운로드하여 보여주고 있습니다.

그런데 다름이 아니라 이미지로더 라이브러리가 이미지다운로드시 비동기적으로 동작하는거 같네요.

당연한거지만;;

스크롤을 하면서 전의 이미지가 다운로드가 완료된 이미지로 계속 변경되는 현상이 생깁니다.

말이 좀 이상한데...

즉 커스텀리스트뷰를 구현할때 어댑터에서 뷰를 계속 재생성하지 않고 뷰를 재사용하잖아요?

그래서 그런지 다른뷰들에 전에 입혓던 이미지들이 있는데 그 해당위치에 맞는 이미지가 다운로드가 완료 될때까지

전에 썻던 이미지가 입혀져 있다가 해당위치에 맞는 이미지가 다운로드가 완료되면 갑자기 팍 바뀌고 하니까

뭔가 렉걸리는 느낌나고 밀리는 느낌나고 별로 보기가 안좋아서요.

좋은 해결 방법이 없을까요?
갸아악 (21,260 포인트) 님이 2013년 12월 10일 질문

2개의 답변

0 추천
어느 상황인지 이해 갑니다..

뷰를 재사용 하기때문에 전에 있던 뷰를 그대로 가져오는데 이미지가 다운료드 완료 되기전까지는 전에 있던 이미지를 사용하게 되죠. 그럼 디폴트로 이미지를 셋한다음 이미지가 다운로드 완료 되면 바뀌는 방식으로 처리하면 될꺼같습니다..

그리고 렉걸리는 느낌은 이미지 캐쉬처리를 하지않는 이상 발생합니다.

RemoteImageCache 라는 오픈 소스를 이용해보세요.
왈라뽕다 (1,170 포인트) 님이 2013년 12월 11일 답변
0 추천

캐싱 기능을 사용해보세요.
DisplayImageOptions 에서 
.cacheInMemory(ture);또는 .cacheOnDisc(true);  
최초 로드시엔 어쩔수없지만 뷰 재사용시에는 캐싱되어 좀 더 빠르게 가져올수있습니다.

.showImageOnLoading(R.drawable.xxx); 
를 세팅해서 로딩중일때 임시이미지는 세팅하신건가요?

얼룩돼지 (15,720 포인트) 님이 2013년 12월 11일 답변
아 제가 설명드린건 Universal Image Loader 기준으로 설명드린겁니다.
이미지로더 라이브러리 종류가 많은데 가장 많이들 사용들하시는것 같더라구요.
...