Вариант 1:
Используйте DiskCacheStrategy.SOURCE вместо DiskCacheStrategy.ALL, он должен работать, поскольку DiskCacheStrategy.SOURCE сохраняет исходные данные в кэш.
//Version 4.x
GlideApp
.with(HomePageFragment.this)
.load(remoteURL)
.diskCacheStrategy(DiskCacheStrategy.DATA)
.into(mImageView);
//Version 3.x
Glide.with(mContext)
.load(url)
.diskCacheStrategy(DiskCacheStrategy.SOURCE)
.into(imageView);
Вариант 2: (если выше не работает)
Есть какая-то конкретная причина использования Glide? Хочешь попробовать Пикассо, я нашел Пикассо намного лучше для этого. Вы можете использовать следующий код для автономного кэширования. Сначала он будет работать в автономном режиме, если не найден, а затем искать онлайн-изображение.
Picasso.with(getActivity())
.load(imageUrl)
.networkPolicy(NetworkPolicy.OFFLINE)
.into(imageView, new Callback() {
@Override
public void onSuccess() {
//..image loaded from cache
}
@Override
public void onError() {
//Try again online if cache failed
Picasso.with(getActivity())
.load(posts.get(position).getImageUrl())
.error(R.drawable.header)
.into(imageView, new Callback() {
@Override
public void onSuccess() {
//... image loaded from online
}
@Override
public void onError() {
Log.v("Picasso","Could not fetch image");
}
});
}
});