2016. 6. 21. 14:52ㆍ개발일기/스타일판다
Glide로 이미지 로딩을 잘 해나가고 있는 도중에, 간헐적으로 아래 그림과 같은 문제점이 발생했다.
스크롤을 할 경우 간헐적으로 위의 그림 처럼 이미지를 못 가져오는 것이다!!
cache를 적용하고 있지 않았는데(default 캐시가 적용되고 있다고 어디서 들은 기억이 남) glide에 custom으로 캐시를 적용해 보기로 했다.
MyGlideModule.java 파일을 만들어서 프로젝트에 추가했다.
public class MyGlideModule implements GlideModule {
private final int maxMemory = (int)(Runtime.getRuntime().maxMemory() / 1024);
private final int cacheSize = maxMemory / 8;
private final int DISK_CACHE_SIZE = 1024 * 1024 * 10;
@Override
public void applyOptions(Context context, GlideBuilder builder) {
builder.setDiskCache(new ExternalCacheDiskCacheFactory(context, "cache", DISK_CACHE_SIZE))
.setMemoryCache(new LruResourceCache(cacheSize));
}
@Override
public void registerComponents(Context context, Glide glide){ }
}
Manifest.xml에 아래 항목을 추가했다.
<application
....
<meta-data android:name="패키지명.MyGlideModule" android:value="GlideModule" />
....
</application>
proguard-rules.pro 파일에 아래 항목 추가
-keepnames 패키지명.MyGlideModule
이렇게 적용하고 다시 실행 해봤지면, 결과적으로 아무 변화가 없었다.
답답해서 facebook 안드로이드 커뮤니티에 해당 질의를 올렸는데, 비슷한 경우가 발생해서 다른 image Loader를 사용했다는 답변을 듣게 되었다.
해보고 정 안되면 다른 image Loader를 사용해야 겠다.
구글에서도 찾아봤는데 거의 이런 질의가 없는 걸로 봐서는 내 잘못인 거 같기도 하다 -_-;;