我使用Picasso从服务器和Volley加载图像来执行请求。
示例:
Picasso.with(getContext()).load(article.getImagePath()).error(R.drawable.placeholder_blue_sd).placeholder(R.drawable.placeholder_blue_sd).into(image);
答案 0 :(得分:0)
使用此方法而不是现有的方法:
Picasso.with(getContext()).load(data.get(position).getFeed_thumb_image()).memoryPolicy(MemoryPolicy.NO_CACHE).into(image);
另请阅读:
编辑:我忘记了检查Picasso的缓存大小,所以这里有一些有用的链接Is it possible to change the size of the cache Picasso uses for images?
Android Imge Picasso Square Cache Size
另请阅读本文:https://futurestud.io/blog/picasso-influencing-image-caching
答案 1 :(得分:0)
嗯,你可以这样做:
StatsSnapshot picassoStats = Picasso.with(context).getSnapshot();
statsSnapshot
对象包含以下参数:
StatsSnapshot {
MAXSIZE = 28760941,
大小= 26567204,
cacheHits = 30,
cacheMisses = 58,
downloadCount = 0,
totalDownloadSize = 0,
averageDownloadSize = 0,
totalOriginalBitmapSize = 118399432,
totalTransformedBitmapSize = 96928004,
averageOriginalBitmapSize = 2466654,
averageTransformedBitmapSize = 2019333,
originalBitmapCount = 48,
transformedBitmapCount = 41,
timeStamp = 1432576918067}
了解更多here
没有直接的方法(在Picasso中)清除整个缓存,因为:
Picasso没有磁盘缓存,HTTP客户端负责它。您可以将自己的磁盘缓存安装到HTTP客户端,并删除文件夹的内容以清除它。
来源:Picasso Issue#1543和Picasso Issue#1521
但如果您想要强制刷新单个图片,则可以为NO_CACHE
和memoryPolicy
指定diskPolicy
以跳过缓存并强制刷新。
Picasso.with(context)
.load(newUri)
.memoryPolicy(MemoryPolicy.NO_CACHE)
.diskPolicy(MemoryPolicy.NO_CACHE)
.into(imageView);
或
你可以在网址上调用invalidate
Picasso.with(context).invalidate(uri.toString());