Glide 3.0 的新功能
1. gif动画解析:还是那样,用Glide.with().load()加载一个gif动画,glide会加载显示gif。另外,用Glide.with().load().asBitmap()总是加载静态图。用Glide.with().load().asGif会失败,除非加载的图片是gif.
2. 本地视频剧照:除了解析gif之外,glide也可以解析你设备上的视频的剧照。还是用Glide.with().load()解析任何在android可以解析的视频。
3. 缩略图支持:现在你能同时加载多图像到相同view上,这样你能最小化你花费在参看加载轮图的时间而不牺牲质量。首先,加载一个1/10视图大小的缩略图,然后,加载整个图像在上面。用代码:Glide.with(youFragment).load(url).thumbnail(0.1f).into(youView)。更多操作,你也可以通过一个完整的新请求调用.thumbnail()。
4. 周期集成:请求自动在onStop时暂停,在onStrat重新开始。Gif也会在onStop时暂停,避免在后台耗电。除了当设备的连接状态改变时,所有失败的请求会自动重新开始,以确定没有因为短连接问题导致请求失败。
5. 转换编码:除了解析资源外,Glide的.toBytes() / .transcode()方法允许你获取、解析、变形一个图片在后台,此外,还是同样的调用,把图片转码成更有用的格式。例如,上传一个250*250的照片字节给一个用户:
Glide.with(context)
.load(“/user/profile/photo/path”)
.asBitmap()
.toBytes()
.centerCrop()
.into(new SimpleTarget<byte[]>(250, 250) {
@Override
public void onResourceReady(byte[] data, GlideAnimation anim) {
// Post your bytes to a background thread and upload them here.
}
});
- 动画:Glide 3.x 增加支持过渡(.crossFade()),和view属性动画。(.animate(ViewPropertyAnimation.Animator)),
- OkHttp、Volley 支持:你可以选择OkHttp,或Volley,或Glide默认的HttpUrlConnection作为你的网络堆栈。OkHttp和Volley的引入通过添加
相应集成库的依赖,并且注册相应的ModeLoaderFactory。ReadMe查看更多。
从2.0迁移到3.0
- 所有Glide.load()调用现在变为Glide.with(fragment/activity/context).load()。
2.所有自定义加载的调用,Glide.load(url).into(new SimpleTarget(){…}).with(context),现在只需要 Glide.with(context).load(url).into(new SimpleTarget(){…})。
特性
除了在3.0中介绍的新特性外,Glide兼容原来的2.x版本。
- 后台加载图片
- 自动取消list中的重用工作
- 内存和硬盘缓存
- bitmap和资源池减少闪避
- 任意转变