Glide图片发请求+缓存简单实用解析

1、引入依赖:compile 'com.github.bumptech.glide:glide:3.7.0'


2、配置
        1、 配置需要实现 GlideModule,在此,GlideModule 相当于 Application 的角色,属于全局配置,在该实现类中可以设置图片缓存信息;
        2、在 AndroidManifest.xml 中需要配置
	<meta-data
            android:name="com.heyha.www.glidetest.MyGlideModule"
            android:value="GlideModule" />
        至此,配置完成。GlideModule 实现类如下
public class MyGlideModule implements GlideModule {
    @Override
    public void applyOptions(Context context, GlideBuilder builder) {
        MemorySizeCalculator calculator = new MemorySizeCalculator(context);
        int defaultMemoryCacheSize = calculator.getMemoryCacheSize();
        int defaultBitmapPoolSize = calculator.getBitmapPoolSize();
        int cacheSize100MegaBytes = 104857600;
        builder.setMemoryCache(new LruResourceCache(defaultMemoryCacheSize));
        builder.setBitmapPool(new LruBitmapPool(defaultBitmapPoolSize));
        String downloadDirectoryPath = context.getExternalCacheDir().getPath() + File.separator + "glide";
        builder.setDiskCache(new DiskLruCacheFactory(downloadDirectoryPath,cacheSize100MegaBytes));
    }
    @Override
    public void registerComponents(Context context, Glide glide) {
    }
}


3、界面调用,示例如下:
Glide.with(YourFragment).load(imageUrl).error(失败时显示的图片)
                .diskCacheStrategy(DiskCacheStrategy.SOURCE).into(YourImageView);


4、缓存说明:

       调用第 3 步时,获取的图片先保存在内存,然后是本地磁盘,最后显示在界面上,如果在内存或者本地磁盘中发生错误,可能不会显示在界面上。当成功执行第 3 步后,在内存和本地磁盘均缓存了该图片的信息,缓存策略是最近最久未使用策略,当想要再次使用缓存的图片时,继续执行第 3 步,但本次执行会先在内存中查找,然后是本地磁盘缓存,如果都没找到,最后再从网络上根据 imageUrl 获取该图片。


5、推荐加入第三方库:compile 'jp.wasabeef:glide-transformations:2.0.1'

        该库包含一些常用的图片样式,例如图片模糊、圆角、圆形图片、转为黑白图片等等,使用方法很简单,只需加上一个 bitmapTransform(该库提供的图片样式),如:
    Glide.with(MainActivity.this).load("http://pic33.nipic.com/20130916/3420027_192919547000_2.jpg").error(R.mipmap.ic_launcher)
        .bitmapTransform(new CropCircleTransformation(this))
        .diskCacheStrategy(DiskCacheStrategy.SOURCE).into(glide);





说明:本文章只是为了记录下自己学习 glide 时对缓存的理解,文章将的浅显,具体使用方法推荐查看官方文档。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值