Я использую Picasso для загрузки изображений из Интернета и отображения их в RecyclerView.Picasso memory/disk cache
private Picasso createPicasso(Context context){
OkHttpClient picassoClient = new OkHttpClient();
picassoClient.interceptors().add(new Interceptor() {
@Override
public Response intercept(Interceptor.Chain chain) throws IOException {
try {
Map authHeaders = BackendServiceClient.buildAuthHeaders();
Request newRequest = chain.request().newBuilder()
.addHeader("Authorization", (String) authHeaders.get("Authorization"))
.build();
return chain.proceed(newRequest);
} catch (CredentialNotStoredException e) {
e.printStackTrace();
}
return chain.proceed(chain.request().newBuilder().build());
}
});
return new Picasso.Builder(context)
.downloader(new OkHttpDownloader(picassoClient))
.build();
}
Использование:
ImageDownloader.getSharedInstance().getPicasso(context)
.load(url)
.placeholder(R.drawable.head_big) //
.error(R.drawable.head_big) //
.tag(context)
.into(holder.personPhoto);
Загрузка и отображение изображений работает, как ожидалось, но если я прокручивать список, изображения получает скачиваются из Интернета снова и не кэшируются. Как можно всегда кэшировать их на диске и в памяти.
.... на стороне сервера должен поддерживать кэширование ... – Selvin
Там нет никакого способа принуждения кэширования изображений на диске? – seeya
первый поиск Google с правильными ключевыми словами возвращает ответ создателя этой библиотеки ... никогда не недооценивайте силу поиска Google – Selvin