Доступ к кэшированным изображениям из реализации LruCache
У меня есть GridView с изображениями, и я заполнил его, используя Volley, и кэшировал изображения, используя ссылки ниже. Я хочу получить доступ к выбранному изображению GridView в новом действии из кэшированной реализации. Я искал здесь на Stackru, но не мог найти, как получить доступ к кэшированным изображениям, используя их ключ (в этом случае URL). Я перешел по этим ссылкам, но ничего не смог найти:
Джейк Уортонс Волей Кастомизация
https://github.com/rdrobinson3/VolleyImageCacheExample
Нужно ли использовать тот же объект LruCache, созданный в объекте ImageLoder во втором упражнении, или есть какой-то другой способ?
Объект Imageloader в классе Singleton
Это стандартная реализация используемого объекта LruCache. Если кто-то может объяснить, используя код ниже?
imageLoader = new ImageLoader(requestQueue, new ImageLoader.ImageCache() {
private final LruCache<String, Bitmap> cache = new LruCache<>(10);
@Override
public Bitmap getBitmap(String url) {
return cache.get(url);
}
@Override
public void putBitmap(String url, Bitmap bitmap) {
cache.put(url, bitmap);
}
});
Предполагая, что у меня есть собственный класс BitmapCache, который расширяет LruCache и реализует ImageCache, объясните мне, как я могу получить доступ к кешу во 2-м действии, чтобы получить доступ к кэшированным изображениям
public class LruCacheClass extends LruCache<String,Bitmap> implements ImageLoader.ImageCache {
public LruCacheClass(int maxSize) {
super(maxSize);
}
@Override
protected int sizeOf(String key, Bitmap value) {
return value.getRowBytes() * value.getHeight();
}
@Override
public Bitmap getBitmap(String url) {
return get(url);
}
@Override
public void putBitmap(String url, Bitmap bitmap) {
put(url, bitmap);
}}
1 ответ
Я нашел ответ здесь
Причиной было то, что я изменил размер ImageView при получении изображения из кэша. Кэш возвращает только изображение, размер которого соответствует размеру первоначально сохраненного.