这是对Glide使用的一个最简单的梳理,从 这里 Glide 开始 总结而来。
引入依赖
compile 'com.github.bumptech.glide:glide:3.6.1'
使用
Glide
.with(Context)
.load(url或者ResId)
.placeHolder(占位图)
.error(加载错误时显示的图片)
.crossFade(int duration) 淡入淡出动画
.dontAnimate() 直接显示图片无动画
.override(600,200)图片显示到imageView之前重新改变图片大小
.centerCrop() centerCrop方式显示到ImageView
.fitCenter() fitCenter方式显示到ImageView
.into(ImageView) 显示到ImageView
支持gif图
.load()
.asGif()如果url不是gif图会当做错误处理
.asBitmap()作为常规图片显示,如果是gif图则显示第一帧
支持显示本地视频
.load()本地视频的路径即可
缓存策略:内存+磁盘+网络
.skipMemoryCache(true)跳过内存缓存,不把图片放到内存缓存中
.diskCacheStrategy(DiskCacheStrategy.NONE) 跳过磁盘缓存
Glide缓存了原始图像、全分辨率和小版本的图像
DiskCacheStrategy.NONE 什么都不缓存
DiskCacheStrategy.SOURCE 只缓存全分辨率的图片
DiskCacheStrategy.RESULT 缓存最终的图片(降低分辨率或转换后的)
DiskCacheStrategy.ALL 缓存所有图像(默认)
图片请求的优先级
.priority() 枚举Priority.Low、NORMAL、HIGH、IMMEDIATE优先级递增
缩略图
.thumbnail(0.1f)显示原始图10%大小的缩略图,可以传一个Glide请求作为参数
回调 SimpleTarget和ViewTarget用于自定义视图类 不要使用匿名内部类
.asBitmap() 最好强制返回bitmap
.into(SimpleTarget) 回调Bitmap到SimpleTarget,可以指定bitmap尺寸
.into(ViewTarget) 回调一个GlideDrawable给自定义的View
生命周期
.with(Context) 如果是activity,则activity停止的时候Glide会自动停止请求
加载图片到通知栏和widget中
.into(NotificationTarget)
.into(AppWidgetTarget)
调试使用adb命令
adb shell setprop log.tag.GenericReuqest DEBUG
异常处理 不要使用匿名内部类
.listener(RequestListener) RequestListener.onException 返回false .error才会显示
转换 Transformation,BitmapTransformation等
.transform(Transformation) 转换的库实现了很多种转换 https://github.com/wasabeef/glide-transformations
自定义动画
.animate() 传入动画资源id或动画类实现
ViewPropertyAnimation.Animator 接口
集成网络库
Glide实现了两个网络库集成 OKHttp 和Volley
compile 'com.github.bumptech.glide:okhttp-integration:1.3.1@aar'
compile 'com.github.bumptech.glide:volley-integration:1.3.1@aar'
用Modeule自定义Glide
略过
这里只是一个速查,具体使用还是看 这里 Glide 开始。