从 LruCache 实现访问缓存图像

Accessing cached Images from LruCache Implementation

我有一个带有图像的 GridView,我使用 Volley 填充它并使用下面的链接缓存图像。我想从缓存的实现中以新的 activity 访问 GridView 的选定图像。我在 Whosebug 上进行了搜索,但找不到如何使用其密钥访问缓存的图像(在本例中为 URL)。我已点击这些链接,但找不到任何内容:

Jake Whartons Volley CUstomization

VolleyImageCacheExample

我是否必须在第二个 activity 中使用在 ImageLoder 对象中创建的相同 LruCache 对象,还是有其他方法?

Singleton 中的 Imageloader 对象 class

这是使用的 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);
        }
    });

假设我有一个扩展 LruCache 并实现 ImageCache 的自定义 class BitmapCache,请指导我如何在第二个 activity 中访问缓存以访问缓存的图像

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);

}}

我找到答案了 here

原因是我在从缓存中获取图像时调整了 ImageView 的大小。仅缓存 returns 与原始保存大小相同的图像。