我如何更新壁画SimpleDraweeView的图像,如果它由setImageURI设置一次

时间:2015-05-26 10:27:24

标签: android imageview fresco

我正在使用facebook Fresco库和SimpleDraweeView来显示文件中的头像图片:

  Uri avaURI = Uri.fromFile(new File(getCacheDir(), Constants.AVA_FILE_NAME));
  simpleDrawee.setImageURI(avaURI);

但是如果我用图片更改了文件(删除了以前的文件并使用新图像创建了相同的文件),我该如何更新(刷新)SimpleDraweeView?它仍然显示旧版本的图像。(我试图通过Fresco.getImagePipeline().evictFromMemoryCache(avaURI);禁用缓存,但它没有帮助。)

2 个答案:

答案 0 :(得分:12)

我相信你走在正确的轨道上。旧图像可能存在两个以上的存储级别,其中最有可能从中拉回。它们会在60天后过期,我相信,所以它也需要冲洗。

Fresco.getImagePipeline().evictFromMemoryCache(avaURI);

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

答案 1 :(得分:2)

ImagePipeline imagePipeline = Fresco.getImagePipeline();
    imagePipeline.evictFromCache(Uri);
    imagePipeline.clearCaches();
draweeView.setImageURI(Uri);