我试图在用户单击对象时动态加载imageview。我已经尝试过了。
if(mImage != null){ mImage.setImageURI(null);}
Glide.with(itemView).load(imageString).into(mImage);
imagestring是一个外部字符串,其中包含图像的URL。 最好的方法是什么?
答案 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来混合文件日期修改时间。