How I can update image of fresco SimpleDraweeView, if it was set once by setImageURI

徘徊边缘 提交于 2019-12-04 20:10:25

问题


I am using Facebook Fresco library and SimpleDraweeView for displaying avatar image from file:

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

But what if I changed file with picture (deleted previous file and created the same one with new image), how can I update (refresh) SimpleDraweeView? Its still display the old version of image. (I tried to disable cache by Fresco.getImagePipeline().evictFromMemoryCache(avaURI); but it didn't help).


回答1:


I believe you were on the right track. There are two more levels of storage that the old image may exist in, where it is most likely getting pull back in from. These expire after 60 days, I believe, so it will need to be flushed also.

Fresco.getImagePipeline().evictFromMemoryCache(avaURI);

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



回答2:


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


来源:https://stackoverflow.com/questions/30455900/how-i-can-update-image-of-fresco-simpledraweeview-if-it-was-set-once-by-setimag

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!