我想使用picasso将图像从url加载到占位符中,但不将该图像存储在缓存中 - 换句话说,我希望将图像从网络直接下载到磁盘然后从磁盘加载需要。我知道有一个名为RequestCreator的类,你可以在其中指定内存策略 - 有没有人有一个使用picasso / requestcreator做这样的事情的例子?
所以...类似:
RequestCreator requestCreator = new RequestCreator();
requestCreator.memoryPolicy(MemoryPolicy.NO_CACHE);
....
与:
合并Picasso.with(context).load(someurl).fit().placeholder(someplaceholder).into(sometarget)..
答案 0 :(得分:51)
毕加索在毕加索建造者的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);
NO_CACHE
处理请求时跳过内存缓存查找。
NO_STORE
跳过将最终结果存储到内存缓存中。对于一次性请求很有用,可以避免从缓存中驱逐其他位图。
答案 1 :(得分:1)
对于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);
答案 2 :(得分:0)
毕加索2.5.0
如果使用Picasso从Internet加载图像,则必须使用NetworkPolicy属性。
For ( i in seq(1,length( DATAFRAME ),1) ) plot(DATAFRAME[,i],ylab=names(DATAFRAME[i]),type="l")
但实时内存缓存(而非磁盘缓存)很有用,您可能希望保留它。
答案 3 :(得分:-1)
只需将其附加在网址末尾即可。
"?=" + System.currentTimeMillis();