Glide修改本地图片缓存路径

1.首先你的项目需要先依赖glide;

2.创建一个类实现GlideModule接口

package com.example.fruittest;

import android.content.Context;
import android.os.Environment;

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

/**
 * setMemoryCache()
 * 用于配置Glide的内存缓存策略,默认配置是LruResourceCache。
 * <p>
 * setBitmapPool()
 * 用于配置Glide的Bitmap缓存池,默认配置是LruBitmapPool。
 * <p>
 * setDiskCache()
 * 用于配置Glide的硬盘缓存策略,默认配置是InternalCacheDiskCacheFactory。
 * <p>
 * setDiskCacheService()
 * 用于配置Glide读取缓存中图片的异步执行器,默认配置是FifoPriorityThreadPoolExecutor,
 * 也就是先入先出原则。
 * <p>
 * setResizeService()
 * 用于配置Glide读取非缓存中图片的异步执行器,默认配置也是FifoPriorityThreadPoolExecutor。
 * <p>
 * setDecodeFormat()
 * 用于配置Glide加载图片的解码模式,默认配置是RGB_565。
 */

public class MyGlide implements GlideModule {

    public static final int DISK_CACHE_SIZE = 500 * 1024 * 1024;

    @Override
    public void applyOptions(Context context, GlideBuilder builder) {

        String path = Environment.getExternalStorageDirectory().getPath().toString()+"/zhangdi";
        builder.setDiskCache(new DiskLruCacheFactory(path, DISK_CACHE_SIZE));
    }

    @Override
    public void registerComponents(Context context, Glide glide) {

    }
}

3.在清单配置文件中声明你的自定义GlideModule,name是包名.类名,value必须是GlideModule

<meta-data android:name="com.example.fruittest.MyGlide" android:value="GlideModule"/>

4.最后需要你加上对应的权限:网络权限、文件的读写权限

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

5.正常使用Glide.with.load.into调用就行,然后你在你的sd卡目录下就能看到对应文件夹和文件夹里的缓存图片了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值