Android-使用毕加索加载图像而不将其存储在缓存中
我想使用毕加索将一幅图像从url加载到占位符中,但不将该图像存储在缓存中——换句话说,我希望该图像从网络直接下载到磁盘,然后在需要时从磁盘加载。我知道有一个名为RequestCreator的类,您可以在其中指定内存策略-是否有人有使用毕加索/RequestCreator执行类似操作的示例 所以。。比如:Android-使用毕加索加载图像而不将其存储在缓存中,android,picasso,Android,Picasso,我想使用毕加索将一幅图像从url加载到占位符中,但不将该图像存储在缓存中——换句话说,我希望该图像从网络直接下载到磁盘,然后在需要时从磁盘加载。我知道有一个名为RequestCreator的类,您可以在其中指定内存策略-是否有人有使用毕加索/RequestCreator执行类似操作的示例 所以。。比如: RequestCreator requestCreator = new RequestCreator(); requestCreator.memoryPolicy(MemoryPolicy.NO
RequestCreator requestCreator = new RequestCreator();
requestCreator.memoryPolicy(MemoryPolicy.NO_CACHE);
....
合并为:
Picasso.with(context).load(someurl).fit().placeholder(someplaceholder).into(sometarget)..
毕加索通过其在毕加索生成器中的
skipMemoryCache()
支持此功能。下面是一个例子
Picasso.with(context).load(imageUrl)
.error(R.drawable.error)
.placeholder(R.drawable.placeholder)
.skipMemoryCache()
.into(imageView);
对于新的API,您应该像这样使用它,这样它就不会寻找它并将其存储在缓存中:
Picasso.with(context).load(imageUrl)
.error(R.drawable.error)
.placeholder(R.drawable.placeholder)
.memoryPolicy(MemoryPolicy.NO_CACHE, MemoryPolicy.NO_STORE)
.into(imageView);
无缓存
处理请求时跳过内存缓存查找
无店铺
跳过将最终结果存储到内存缓存中。用于一次性请求,以避免从缓存中逐出其他位图
对于
picasso:2.71828
或更高版本,使用以下命令跳过磁盘缓存networkPolicy(networkPolicy.NO_cache)
:
Picasso.get()
.load(camera_url)
.placeholder(R.drawable.loader2)
.networkPolicy(NetworkPolicy.NO_CACHE, NetworkPolicy.NO_STORE)
.into(img_cam_view);
只需将其附加在url的末尾
"?=" + System.currentTimeMillis();
毕加索2.5.0
如果您使用毕加索从Internet加载图像,则必须使用NetworkPolicy属性
.networkPolicy(NetworkPolicy.NO_STORE)
但是,实时内存缓存(不是磁盘缓存)很有用,您可能希望保留它。在使用No_Store之后,我们如何使用Picaso获取缓存映像呢,您应该尝试搜索它,如果找不到问题,请询问它
NetworkPolicy
调节磁盘缓存,而MemoryPolicy调节内存缓存。此外,NetworkPolicy.NO_STORE
标志也可用于跳过在磁盘上存储映像。