Android图片在壁画中无效

时间:2015-05-15 07:44:04

标签: android picasso fresco

我正在将picasso的android图像缓存库迁移到fresco。我想知道是否有任何方法可以使已经捕获的图像无效,因为我正在添加功能来替换现有图像,有可能在毕加索中这样做

Picasso.with(context).invalidate(URI);

此行删除缓存的图像并使用提供的url使用新的图像,例如

http://example.com/image_path

在壁画中我尝试过使用

Fresco.getImagePipeline().evictFromMemoryCache(uri);

这是从视图中删除图像,但是再次添加相同的旧缓存图像,而不是从picasso中工作的网络中获取新图像。

请参考问题Invalidate cache in Picasso接受的答案在毕加索的情况下做得很好。

2 个答案:

答案 0 :(得分:3)

Fresco.getImagePipeline().evictFromMemoryCache(uri);

上面的代码行从catche中删除图像,但图像保留在磁盘中并在调用时呈现相同的图像。我们还需要从磁盘中删除相同的图像。 Bellow两行从光盘缓存中删除图像,如果从磁盘缓存中保存,我们还需要删除缩略图像。

Fresco.getImagePipelineFactory().getMainDiskStorageCache().remove(new SimpleCacheKey(uri.toString()));
Fresco.getImagePipelineFactory().getSmallImageDiskStorageCache().remove(new SimpleCacheKey(uri.toString()));

注意:如果您使用自定义缓存密钥,则需要以这种方式进行更改。

答案 1 :(得分:1)

尝试

/b