在使用Glide加载本地图片时遇到这样一个问题:只修改图片内容而不更改它的路径时,发现图片并没有更新替换.
我们都知道像Glide这样的第三方图片加载框架内部都是采用的三级缓存,所以出现这样的问题,肯定是Glide的内存缓存的问题。于是只需要清楚原图片在内存中的缓存就行,具体怎么做如下:
Glide.with(UlifeplusApp.app).load(url)
.signature(new StringSignature(UUID.randomUUID().toString()))
.transform(new GlideCircleTransform(imageView.getContext()))
.error(R.drawable.circle_bg)
.into(imageView);
关键代码是
.signature(new StringSignature(UUID.randomUUID().toString()))
Glide的图片缓存都有对应的唯一标识符即key,如果key相同就不会去本地或者网络加载图片而调用缓存。不过想要改变标识符是很困难的,于是Glide给我们提供了signature()方法,来附加一个数据到缓存key中.