Glide 缓存使用

Posted epmouse

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Glide 缓存使用相关的知识,希望对你有一定的参考价值。

开发中遇到的问题,使用glide加载网络图片,每次更换头像后返回页面要同步显示已改过的头像。

我们服务端是每次上传的个人头像只是替换原图,路径并不变。

这就导致glide加载时会使用缓存的图片,导致页面图片显示不同步。

针对这个问题,我做了如下优化去掉磁盘缓存

 Glide.with(this).load(imagePath).asBitmap().diskCacheStrategy(DiskCacheStrategy.NONE)
                .placeholder(R.drawable.defaultusericon_1).into(new BitmapImageViewTarget(ivPersonal) {
            @Override
            protected void setResource(Bitmap resource) {
                RoundedBitmapDrawable roundedBitmapDrawable = RoundedBitmapDrawableFactory.create(context.getResources(), resource);
                roundedBitmapDrawable.setCircular(true);
                ivPersonal.setImageDrawable(roundedBitmapDrawable);
            }
        });

然而并没有什么卵用,惆怅许久才知道glide还会有个内存缓存,修正如下:

 Glide.with(this).load(imagePath).asBitmap().skipMemoryCache(true).diskCacheStrategy(DiskCacheStrategy.NONE)
                .placeholder(R.drawable.defaultusericon_1).into(new BitmapImageViewTarget(ivPersonal) {
            @Override
            protected void setResource(Bitmap resource) {
                RoundedBitmapDrawable roundedBitmapDrawable = RoundedBitmapDrawableFactory.create(context.getResources(), resource);
                roundedBitmapDrawable.setCircular(true);
                ivPersonal.setImageDrawable(roundedBitmapDrawable);
            }
        });

 

以上是关于Glide 缓存使用的主要内容,如果未能解决你的问题,请参考以下文章

Glide三级缓存理解详细

Glide 不使用缓存图像

Glide 缓存使用

如何在 cakephp4 中使用 Admad cakephp-glide 删除 Glide 缓存?

Glide源码学习-三大缓存

Android 【手撕Glide】--Glide缓存机制(面试)