Android-使用毕加索加载图像而不将其存储在缓存中

Android-使用毕加索加载图像而不将其存储在缓存中,android,picasso,Android,Picasso,我想使用毕加索将一幅图像从url加载到占位符中,但不将该图像存储在缓存中——换句话说,我希望该图像从网络直接下载到磁盘,然后在需要时从磁盘加载。我知道有一个名为RequestCreator的类,您可以在其中指定内存策略-是否有人有使用毕加索/RequestCreator执行类似操作的示例 所以。。比如: RequestCreator requestCreator = new RequestCreator(); requestCreator.memoryPolicy(MemoryPolicy.NO

我想使用毕加索将一幅图像从url加载到占位符中,但不将该图像存储在缓存中——换句话说,我希望该图像从网络直接下载到磁盘,然后在需要时从磁盘加载。我知道有一个名为RequestCreator的类,您可以在其中指定内存策略-是否有人有使用毕加索/RequestCreator执行类似操作的示例

所以。。比如:

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
标志也可用于跳过在磁盘上存储映像。