Glide的简介

Glide是一个快速和有效的开源媒体管理和图像加载Android框架包装媒体解码,内存和磁盘缓存,和资源汇集成一个简单和易于使用的界面

其优点有使用简单

  • 可配置度高,自适应程度高
  • 支持常见图片格式,jpg、png、gif、webp
  • 支持多种数据源,网络、资源、assets 、File、Uri等
  • 高效缓存策略支持内存和硬盘缓存
  • 生命周期集成根据Activity/Fragment生命周期自动管理请求
  • 高效处理Bitmap
Glide的配置

配置很简单,只要在项目的Gradle添加依赖即可
compile 'com.github.bumptech.glide:glide:3.7.0'
compile 'com.android.support:support-v4:19.1.0'
当然,如果涉及到网络加载图片,记得增加网络权限
<uses-permission android:name="android.permission.INTERNET" />

Glide的使用

1、常规基本使用
Glide.with(context).load(url).into(imageView);
context表示上下文,如ActivityFragment依赖的上下文
url一般表示图片的url,支持网络资源、assets资源、Resources资源、File资源、Uri资源、字节数组
imageView表示绑定的View

2、加载gif图
静态加载Glide.with(context).load(url).asBitmap().into(imageView);
动态加载Glide.with(context).load(url).asGif().into(imageView);

3、加载中
加载中就是Glide开启线程加载到加载完成图片显示这段时间,设置加载中图片代码.placeholder(R.drawable.placeholder)
用法Glide.with(context).load(url).placeholder(R.drawable.placeholder).into(imageView);

4、加载失败
用于加载失败时显示的图片
用法Glide.with(context).load(url).error(R.drawable.error).into(imageView);

5、设置缩略图支持
先加载缩略图 然后在加载全图
用法Glide.with(context).load(url).thumbnail(0.1f).into(imageView);

6、设置加载动画
(1)淡入淡出效果Glide.with(context).load(url).crossFade().into(imageView);
(2)自定义动画Glide.with(context).load(url).animate(R.anima.fade_in).into(imageView);
(3)无动画Glide.with(context).load(url).dontAnimate().into(imageView);

7、设置加载监听回调
用法Glide.with(this).load(imageUrl).listener(RequestListener listener).into(imageView);

8、设置加载图片的大小尺寸
(1)指定尺寸 用法Glide.with(context).load(url).override(100,100).into(imageView);
(2)拉伸截取中间部分显示 用法Glide.with(context).load(url).centerCrop().into(imageView);
(3)等比拉伸填满imageView 用法Glide.with(context).load(url).fitCenter().into(imageView);

9、设置缓存
(1)设置缓存 用法Glide.with(context).load(url).diskCacheStrategy(DiskCacheStrategy.ALL).into(imageView);
DiskCacheStrategy.ALL 表示缓存源资源和转换后的资源
DiskCacheStrategy.SOURCE 表示缓存源资源
DiskCacheStrategy.RESULT 表示缓存转换后的资源
DiskCacheStrategy.NONE 表示不作任何磁盘缓存
(2)跳过内存缓存Glide.with(context).load(url).skipMemoryCache(true).into(imageView);
(3)清理磁盘缓存,需要在子线程中执行Glide.get(context).clearDiskCache();
清理内存缓存,可以在UI线程中执行Glide.get(context).clearMemory();

10、BitmapTransformation
你可能不知道Glide在Github上还有一个库,可以处理图片效果,比如裁剪、圆角、高斯模糊等等
引入依赖库 引入依赖库compile 'jp.wasabeef:glide-transformations:2.0.1'
高斯模糊radius取值1-25 ,值越大图片越模糊
用法 Glide.with(context).load(url).bitmapTransform(new BlurTransformation(context,radius))
.into(imageView);