Android图片加载框架Glide

1、Glide是一个高效、开源、Android设备上的媒体管理框架。Glide具有获取、解码和展示视频剧照、图片、动画等功能。

2、Glide有什么好处?

  •  使用简单
  • 可配置度高,自适应程度高
  • 支持常见图片格式 Jpg png gif webp
  • 支持多种数据源  网络、本地、资源、Assets 等
  • 高效缓存策略    支持Memory和Disk图片缓存 默认Bitmap格式采用RGB_565内存使用至少减少一半
  • 生命周期集成   根据Activity/Fragment生命周期自动管理请求
  • 高效处理Bitmap  使用Bitmap Pool使Bitmap复用,主动调用recycle回收需要回收的Bitmap,减小系统回收压力

3、下载

①Gradle方式:


dependencies {
  compile 'com.github.bumptech.glide:glide:3.7.0'
  compile 'com.android.support:support-v4:19.1.0'
}
②Maven方式:

<dependency>
  <groupId>com.github.bumptech.glide</groupId>
  <artifactId>glide</artifactId>
  <version>3.7.0</version>
</dependency>
<dependency>
  <groupId>com.google.android</groupId>
  <artifactId>support-v4</artifactId>
  <version>r7</version>
</dependency>

4、Glide怎么使用?

①基本用法

Glide.with(context)
    .load("http://pathtoimage.com/graphic.png")
    .into(ivImg);
②高级用法

Glide.with(context)
    .load("http://pathtoimage.com/graphic.png")
    .override(300, 200)
    .into(ivImg);
③图像占位符和错误图片:

Glide.with(context)
    .load("http://pathtoimage.com/graphic.png")
    .placeholder(R.drawable.placeholder)
    .error(R.drawable.imagenotfound)
    .into(ivImg);
④裁剪图像

Glide.with(context)
    .load("http://pathtoimage.com/graphic.png")
    .centerCrop()
    .into(ivImg);
⑤图像变换

Glide.with(context)
    .load("http://pathtoimage.com/graphic.png")
    .transform(new CircleTransform(context))
    .into(ivImg);

⑥设置缩略图支持

Glide
    .with(this)
    .load(imageUrl)
    .thumbnail(0.1f)
    .into(imageView);

⑦设置加载动画

        //淡入淡出效果
        Glide.with(this).load(imageUrl).crossFade().into(imageView);

        //无动画效果
        Glide.with(this).load(imageUrl).dontAnimate().into(imageView);

        //自定义动画
        Glide.with(this).load(imageUrl).animate(R.anim.alpha_in).into(imageView);


⑧设置监听回调

 Glide.with(this).load(imageUrl).listener(new RequestListener<String, GlideDrawable>() {
            @Override
            public boolean onException(Exception e, String model, Target<GlideDrawable> target, boolean isFirstResource) {
                return false;
            }

            @Override
            public boolean onResourceReady(GlideDrawable resource, String model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) {
                //imageView.setImageDrawable(resource);
                return false;
            }
        }).into(imageView);


⑨设置加载尺寸

        //指定尺寸
        Glide.with(this).load(imageUrl).override(800,800).into(imageView);
        //拉伸,取中间部分显示
        Glide.with(this).load(imageUrl).centerCrop().into(imageView);
        //等比例拉伸填满ImageView
        Glide.with(this).load(imageUrl).fitCenter().into(imageView);


10、设置缓存策略

        //①跳过内存缓存
        Glide.with(this).load(imageUrl).skipMemoryCache(true).into(imageView);
        //②设置内存缓存
        /*策略解说:

        ALL:缓存源资源和转换后的资源

        NONE:不作任何磁盘缓存

        SOURCE:缓存源资源

        RESULT:缓存转换后的资源*/
        Glide.with(this).load(imageUrl).diskCacheStrategy(DiskCacheStrategy.ALL).into(imageView);


11、缓存的动态清理

 Glide.get(this).clearDiskCache();//清理磁盘缓存 需要在子线程中执行
 Glide.get(this).clearMemory();//清理内存缓存  可以在UI主线程中进行

混淆:

-keep public class * implements com.bumptech.glide.module.GlideModule
-keep public enum com.bumptech.glide.load.resource.bitmap.ImageHeaderParser$** {
  **[] $VALUES;
  public *;
}

# for DexGuard only
-keepresourcexmlelements manifest/application/meta-data@value=GlideModule


参考:

1、https://github.com/bumptech/glide

2、http://www.cnblogs.com/whoislcj/p/5558168.html

3、http://mp.weixin.qq.com/s?__biz=MzAxMTI4MTkwNQ==&mid=2650822323&idx=1&sn=ef76ee7a4f262ffe65885de8af7811c4&chksm=80b7822db7c00b3b8c632f6bb7b5662a7d7f000efa0f9af884ab6b6d3c88e294fbee5261cbb6&mpshare=1&scene=23&srcid=0315eMo9bivb8uWMD82dzhoo#rd



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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值