Glide是谷歌推荐的图片加载库
github地址:https://github.com/bumptech/glide
测试项目地址:https://github.com/AndreDing/GlideUse
一、添加依赖:
两种添加方式:
1.直接从github上下载jar包
2.在build.gradle中添加:
compile 'com.github.bumptech.glide:glide:3.7.0' compile 'com.android.support:support-v4:19.1.0'
如果需要使用测试版或构建本地测试版本,看以查阅Snapshots wiki page
二、添加混淆:
在混淆文件中加入:
-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三、使用文档:
可以通过查询glide的Wiki或javadocs学习使用方法
四、3.0新特性:
1.支持Gif:Glide.with(...).load(...)中如果加载的是Gif,Glide将加载一个包含Gif的动态Drawable。
使用Glide.with(context).load(...).asBitmap()方法只能加载静态图片;
使用Glide.with(context).load(...).asGif()方法只能加载Gif动图
2.加载本地Video剧照:Glide可以从本地video中加载剧照。使用Glide.with(...).load(...),只能用于Android可以解码的视频
3.缩略图:Glide目前支持同一时间在同一个view中加载多张图片。因为可以通过
Glide.with(yourFragment).load(yourUrl).thumbnail(0.1f).into(yourView)方法首先加载原图1/10大小的缩略图,然后在最上层加载完整图片。也可以将完整的缩略图加载的请求放入.thumbnail()
方法中
4.生命周期集成:加载请求将在onStop时自动暂停、在onStart时重新开始。并且,所有失败的请求都将在网络环境变化时重新加载。
5.转码:Glide's .toBytes()
and .transcode()方法允许你在后台解码、转换以及获取图像一个image。通过这个方法同样可以将一个图片
转码成一个更有用的格式。
6.动画:3.x中增加了渐隐(.crossFade())以及view的属性动画(.animate(ViewPropertyAnimation.Animator))
7.支持Volley和OkHttp:可以选择Volley、OkHttp或者Glide本身的HttpUrlConnection作为网络请求框架。
五、使用:
最基础的应用:Glide.with(context).load(imageUrl).into(imageView);context可以传入Context、Activity以及Fragment。
设置默认图:Glide.with(context).load(imageUrl).placeholder(drawable).into(imageView); placeholder()中可以出入ResId或者Drawable
设置预览图:Glide.with(context).load(imageUrl).thumbnail(thumbSize).into(imageView); thumbnail中出入预览图比例或者缩略图加载的请求