본문 바로가기
개발일기/스타일판다

Glide custom cache 적용

by 유주원 2016. 6. 21.

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를 사용해야 겠다.

구글에서도 찾아봤는데 거의 이런 질의가 없는 걸로 봐서는 내 잘못인 거 같기도 하다 -_-;;