Glide自定义缓存路径

本文介绍如何在Android应用中自定义Glide的缓存路径。首先需要创建一个继承自AppGlideModule的类,并添加@GlideModule注解。接着在applyOptions方法内,检查是否存在外部存储路径,存在则设定为缓存路径,否则使用内部存储路径。完成配置后,通过Build->Make Project更新项目,即可在代码中使用GlideApp加载图片并利用自定义的缓存路径。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一步我们先添加依赖

implementation 'com.github.bumptech.glide:glide:4.5.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.5.0'

**新建个类继承AppGlideModule,@GlideModule是必须要加的

然后修改applyOptions内的代码**

import android.content.Context;
import android.os.Environment;
import android.support.annotation.NonNull;

import com.bumptech.glide.Glide;
import com.bumptech.glide.GlideBuilder;
import com.bumptech.glide.Registry;
import com.bumptech.glide.annotation.GlideModule;
import com.bumptech.glide.load.engine.cache.DiskLruCacheFactory;
import com.bumptech.glide.module.AppGlideModule;

/**
 * <p>文件描述:<p>
 * <p>作者:JYB<p>
 * <p>创建时间:2019/5/11<p>
 * <p>更改时间:2019/5/11<p>
 * <p>版本号:1<p>
 */
@GlideModule
public class MyGlide extends AppGlideModule {
    @Override
    public void applyOptions(Context context, GlideBuilder builder) {
        int diskCacheSizeBytes = 1024 * 1024 * 100;
        appRootPath = context.getCacheDir().getPath();
        builder.setDiskCache(
                new DiskLruCacheFactory( getStorageDirectory()+"/GlideDisk", diskCacheSizeBytes )
        );
    }
    //外部路径
    private String sdRootPath = Environment.getExternalStorageDirectory().getPath();
    private String appRootPath = null;

    private String getStorageDirectory() {
        return Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED) ?
                sdRootPath : appRootPath;
    }
}

**判断是否有外部路径,有就设置这个路径,没有就用内部路径

然后Build->Make Project,之后就可以在代码中使用GlideApp**

GlideApp.with(context).load(list.get(i).getMasterPic())
				//设置圆角
                .apply(RequestOptions.bitmapTransform(new RoundedCorners(20)))
				.into(viewHolder.image);
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值