NetworkImageView使用ImageLoader,而ImageLoader又使用ImageCache.
如果您对密钥使用相同的机制,则可以为图像提供自定义ImageCache:
return new StringBuilder(url.length() + 12).append("#W").append(maxWidth)
.append("#H").append(maxHeight).append(url).toString();
url在实际请求完成之前未经过测试,所以这里没有问题.
通常,您的“缓存”可能如下所示:
public class MyCache implements ImageLoader.ImageCache {
@Override
public Bitmap getBitmap(String key) {
if (key.contains("file://")) {
return BitmapFactory.decodeFile(key.substring(key.indexOf("file://") + 7));
} else {
// Here you can add an actual cache
return null;
}
}
@Override
public void putBitmap(String key,Bitmap bitmap) {
// Here you can add an actual cache
}
}
你使用它像:
imageView.setImageUrl(Uri.fromFile(mCoverFile).toString(),new MyCache());
(这还没有经过实际测试,可能会有一些调整)