2013-06-20 3 views
0

현재 일부 축소판 이미지를 표시하는 gridview가 있습니다. 내가 겪고있는 문제는 이미지를 스크롤 할 때 이미지가 바뀌면서 이전 이미지에서 새로운 이미지로 바뀐 것을 볼 수 있다는 것입니다. 그래서, 어떻게 해결할 지 궁금했습니다. 화면에없는 이미지를로드 할 수있는 방법이있어서 스크롤 할 때 이미지에서 변경 사항을 볼 필요가 없습니다.화면에없는 이미지를로드하는 방법

+0

보기를 재사용하는 목록보기입니다. 이미지를 lazyloading 할 필요가 있습니다. – tyczj

+0

비트 맵을 만들고 필요한 경우 그리는 것이 어떨까요? 비트 맵을 생성하면 이미지가 메모리로 이동합니다. – neo

답변

1

해당 효과를 피하는 가장 좋은 방법은 어댑터의 getView() 메서드에서 먼저 null으로 이미지를 설정하는 것입니다. 그런 다음 이미지가 이미로드 된 경우 LRU 캐시를 확인할 수 있습니다. 그렇다면 바로 설정하고, 그렇지 않으면 비트 맵으로 비동기 적으로로드하십시오. 뷰에 설정하고 LRU 캐시에 추가하십시오.

+0

유니버설 이미지 로더 (Universal Image Loader)를 사용하여 이미지를 캐싱하고 캐싱되었는지 확인합니다. 가능하다면 UIL을 사용하려고합니다. 그러나 UIL이 이미지를 처리 ​​할 수 ​​있도록 비트 맵을 URI로 설정해야한다는 문제가 있습니다. 그래서 당신이 제안한대로 미리 캐쉬를하면 UIL에 전달할 URI가 없습니다. 어쨌든이 문제가 보이십니까? – Papajohn000

+0

이미지가 처음 표시 될 때만 미리 캐시 할 필요가 없습니다. ImageLoader가 비동기로로드하기 때문에 ImageView에서 이미지가 변경되는 것을 볼 수 있습니다. ImageView에서 이미지를 null로 설정하여 먼저 선택을 취소하십시오. 이미지는 여전히 약간 지연되지만, 적어도 이전 이미지는 보지 못합니다. – SimonSays

관련 문제