如何清空使用glide加载的Imageview

时间:2019-01-12 05:18:51

标签: java android

我试图在用户单击对象时动态加载imageview。我已经尝试过了。

 if(mImage != null){ mImage.setImageURI(null);}

            Glide.with(itemView).load(imageString).into(mImage);

imagestring是一个外部字符串,其中包含图像的URL。 最好的方法是什么?

3 个答案:

答案 0 :(得分:0)

如果要使用Glide清空imageview,请尝试以下操作:

  imageString="";
  Glide.with(itemView).load(imageString).into(mImage);

这对我有用。

答案 1 :(得分:0)

使用此

Glide.with(this).clear(imageView);

答案 2 :(得分:0)

尝试一下:

imageView.setImageBitmap(null);

此外,当滑行缓存存储图像时,您还需要清除它。

这就是我解决这个问题的方式。

方法1:只要图片更改,URL就会更改

Glide.with(DemoActivity.this)
.load(Uri.parse("file://" + imagePath))
.diskCacheStrategy(DiskCacheStrategy.NONE)
.skipMemoryCache(true)
.into(mImage);

diskCacheStrategy()可用于处理磁盘缓存,您可以使用skipMemoryCache()方法跳过内存缓存。

方法2:但是,URL不变时,图像也会改变

如果您的URL保持不变,则需要使用签名进行图像缓存。

 Glide.with(yourFragment)
 .load(yourFileDataModel)
 .signature(new StringSignature(yourVersionMetadata))
 .into(yourImageView);

Glide signature()为您提供了将其他数据与缓存键混合的功能。

如果要从媒体存储中获取内容,则可以使用MediaStoreSignature。 MediaStoreSignature允许您将日期修改时间,mime类型和媒体存储项目的方向混合到缓存键中。这三个属性可靠地捕获了编辑和更新,使您可以缓存媒体存储库。 对于另存为文件的内容,您也可以使用StringSignature来混合文件日期修改时间。