Android 毕加索-仅访问内存缓存
我正在写一个画廊视图,我有两组图像;低质量和高质量 在“多媒体资料”活动中,图像一次显示一个。我先显示低质量图像,然后是高质量图像(就地) 低质量的图像已经在前一个屏幕中访问过,应该预先缓存在内存中。我想做的是只访问内存缓存-然后移动到高质量图像(不管是否加载了低质量图像) 然后一切照旧,毕加索可以在必要时下载高质量的图像Android 毕加索-仅访问内存缓存,android,picasso,Android,Picasso,我正在写一个画廊视图,我有两组图像;低质量和高质量 在“多媒体资料”活动中,图像一次显示一个。我先显示低质量图像,然后是高质量图像(就地) 低质量的图像已经在前一个屏幕中访问过,应该预先缓存在内存中。我想做的是只访问内存缓存-然后移动到高质量图像(不管是否加载了低质量图像) 然后一切照旧,毕加索可以在必要时下载高质量的图像 我可以通过同时使用NetworkPolicy.NO\u CACHE,NetworkPolicy.NO\u STORE和NetworkPolicy.OFFLINE来实现我想要的
我可以通过同时使用
NetworkPolicy.NO\u CACHE
,NetworkPolicy.NO\u STORE
和NetworkPolicy.OFFLINE
来实现我想要的吗?你现在可能已经解决了,但是对于其他登陆这里的人来说-是的,你当然可以
Picasso.with(context)
.load(smallImageUrl)
.networkPolicy(NetworkPolicy.OFFLINE, NetworkPolicy.NO_CACHE)
.into(imageView, new Callback() {
@Override
public void onSuccess() {
Picasso.with(context).load(largeImageUrl).into(imageView);
}
@Override
public void onError() {
Picasso.with(context).load(largeImageUrl).into(imageView);
}
});
(为简洁起见,请原谅不遵守干燥原则)
因此NetworkPolicy.OFFLINE
会阻止它尝试从网络中取出,而NetworkPolicy.NO\u CACHE
会阻止检查磁盘缓存(这是来自OkHttp
或HttpUrlConnection
的网络缓存,具体取决于您使用的内容)
我还建议将毕加索留给后者,因为它通常在感知上与内存缓存一样快