从 LruCache 实现访问缓存图像
Accessing cached Images from LruCache Implementation
我有一个带有图像的 GridView,我使用 Volley 填充它并使用下面的链接缓存图像。我想从缓存的实现中以新的 activity 访问 GridView 的选定图像。我在 Whosebug 上进行了搜索,但找不到如何使用其密钥访问缓存的图像(在本例中为 URL)。我已点击这些链接,但找不到任何内容:
Jake Whartons Volley CUstomization
我是否必须在第二个 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 与原始保存大小相同的图像。
我有一个带有图像的 GridView,我使用 Volley 填充它并使用下面的链接缓存图像。我想从缓存的实现中以新的 activity 访问 GridView 的选定图像。我在 Whosebug 上进行了搜索,但找不到如何使用其密钥访问缓存的图像(在本例中为 URL)。我已点击这些链接,但找不到任何内容:
Jake Whartons Volley CUstomization
我是否必须在第二个 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 与原始保存大小相同的图像。