android glide离线安装,Glide缓存配置

Glide依赖

//这里用的是Android Studio3.0

implementation 'com.github.bumptech.glide:glide:4.3.1'

annotationProcessor('com.github.bumptech.glide:compiler:4.3.1')

implementation 'com.github.bumptech.glide:okhttp3-integration:4.3.1'

Glide本身自带缓存,可以通过继承AppGlideModule自定义一些配置

@GlideModule

public final class CustomGlideModule extends AppGlideModule {

@Override

public void applyOptions(Context context, GlideBuilder builder) {

// 设置缓存大小为20mb

int memoryCacheSizeBytes = 1024 * 1024 * 20; // 20mb

// 设置内存缓存大小

builder.setMemoryCache(new LruResourceCache(memoryCacheSizeBytes));

// 根据SD卡是否可用选择是在内部缓存还是SD卡缓存

if(SDCardUtils.isSDCardEnable()){

builder.setDiskCache(new ExternalPreferredCacheDiskCacheFactory(context, "HYManagerImages", memoryCacheSizeBytes));

}else {

builder.setDiskCache(new InternalCacheDiskCacheFactory(context, "HYManagerImages", memoryCacheSizeBytes));

}

}

// 针对V4用户可以提升速度

@Override

public boolean isManifestParsingEnabled() {

return false;

}

}

Glide跳过内存缓存

GlideApp.with(context)

.load(url)

.skipMemoryCache(true)//默认为false

.dontAnimate()

.centerCrop()

.into(imageView);

Glide磁盘缓存

GlideApp.with(context)

.load(url)

.diskCacheStrategy(DiskCacheStrategy.ALL)

.dontAnimate()

.centerCrop()

.into(imageView);

/*默认的策略是DiskCacheStrategy.AUTOMATIC

DiskCacheStrategy有五个常量:

DiskCacheStrategy.ALL 使用DATA和RESOURCE缓存远程数据,仅使用RESOURCE来缓存本地数据。

DiskCacheStrategy.NONE 不使用磁盘缓存

DiskCacheStrategy.DATA 在资源解码前就将原始数据写入磁盘缓存

DiskCacheStrategy.RESOURCE 在资源解码后将数据写入磁盘缓存,即经过缩放等转换后的图片资源。

DiskCacheStrategy.AUTOMATIC 根据原始图片数据和资源编码策略来自动选择磁盘缓存策略。*/

缓存清理

//磁盘缓存清理(子线程)

GlideApp.get(context).clearDiskCache();

//内存缓存清理(主线程)

GlideApp.get(context).clearMemory();

遇到的问题:在配置完CustomGlideModule之后找不到GlideApp类

解决办法:Build-->Rebuild Project

根据需求封装了一个简单的Glide工具类

public class GlideUtils {

public static void initImageWithFileCache(Context context, String url, ImageView imageView){

GlideApp.with(context)

.load(url)

.diskCacheStrategy(DiskCacheStrategy.ALL)

.dontAnimate()

.centerCrop()

.into(imageView);

}

public static void initImageNoCache(Context context, String url, ImageView imageView){

GlideApp.with(context)

.load(url)

.skipMemoryCache(true)

.dontAnimate()

.centerCrop()

.into(imageView);

}

public static void clearMemoryCache(Context context){

GlideApp.get(context).clearMemory();

}

public static void clearFileCache(Context context){

new Thread(new Runnable() {

@Override

public void run() {

GlideApp.get(context).clearDiskCache();

}

}).start();

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值