Glide
来源:互联网 发布:android简单源码 编辑:程序博客网 时间:2024/06/08 10:43
几种图片加载框架:
Universal Image Loader:一个强大的图片加载库,包含各种各样的配置,最老牌,使用也最广泛。
Picasso: Square出品,必属精品。和OkHttp搭配起来更配呦!
Volley ImageLoader:Google官方出品,可惜不能加载本地图片~
Fresco:Facebook出的,天生骄傲!不是一般的强大。
Glide:Google推荐的图片加载库,专注于流畅的滚动。
一,Glide 是什么?
Glide是一款由Bump Technologies开发的图片加载框架,是Google主导的图片加载开源库,可以是我们在Android平台上以季度简单的方式加载和展示图片
是Android平台上快速和高效的开源的多媒体资源管理库,提供多媒体文件的压缩,内存和磁盘缓存,资源池的接口。它可以最大性能的在Android设备上读取,解码,显示图片和视频。Glide可以将远程的图片,视频,动画图片等缓存在设备本地,便于提高用户浏览图片的流畅体验
二,Glide 的好处/特点?
1,①稳定,速度快,可自适应图片尺寸,支持众多格式,支持加载不同的来源的图片,内存和磁盘缓存的优化
2,②使用简单
③可配置度高,自适应程度高
④支持常见的图片格式(png,jpg,gif,webp)
⑤支持多种数据源(网络,本地,资源,Assets)
⑥高效缓存策略(支持Memory和Disk图片缓存 默认Bitmap格式采用RGB_565内存使用减少一半)
⑦生命周期集成(根据Activity/Fragment生命周期自动管理请求)
⑧高效处理Bitmap(使用Bitmap Pool使Bitmap复用了,主动调用recycle回收需要回收的Bitmap,减少系统回收压力)
3,⑨转码的支持,动画的支持
⑩OKhttp和Volley的支持
三,为什么要用 Glide?
universalImageLoader最老的图片框架,挺好的就是配置多
Picasso 加载过多的图片时占用的内存相当大 可能会有OutOfMemoryError
Picasso也是一个强大的图片加载框架,支持webp格式,支持渐进式jpeg,可以定义image的各种属性,支持多图请求和图片复用,支持手势缩放和旋转
Glide加载图像以及磁盘缓存优于Picasso,速度更快,并且Glide更有利于减OutOfMemoryError的发生,gif是Glide的杀手锏(但是Picasso的图片质量更高一些)。Glide用法就相当于是另一个Picasso,从Picasso到Glide的改动少一些,并且是Google在维护。
Glide相对于UniversalImageLoader来说,Glide支持gif和短视频,Glide
支持activity,fragment,application生命周期的联动,更智能的管理图片请求。Glide的方法比其多了1000多个。
四,怎么样用Glide?
配置:
compile 'com.github.bumptech.glide:glide:3.7.0'
基本/常用的方法:
with() 设置绑定生命周期
load() 设置图片地址
into() 设置显示位置
placeholder() 设置加载中显示的图片(占位图)
error() 设置加载错误是显示的图片//占位图和错误图可以用R.color.
skipMemoryCache() 设置跳过内存缓存
Priority设置下载优先级(递增)
Priority.LOW
Priority.MORMAL
Priority.HIGH
Priority.IMMEDLATE
diskCacheStrategy() 设置缓存策略
策略解说:
all:缓存源资源和转换后的资源(缓存所有版本的图像)
none:不作任何磁盘缓存(什么都不缓存)
source:缓存源资源(只缓存原来的全分辨率的图像)
result:缓存转换后的资源(最后的一个图像)
animate(R.anim.) 设置动画
thumbnail() 设置缩略图支持
override() 设置图片加载尺寸
centerCrop()(拉伸) fitCenter()(缩放)设置动态转换(自定义动态转换Transformation)
into(new SimpleTarget<GlideDrawable>) 设置要加载的内容
listener(new RequestListener<String,GlideDrawable>) 设置监听
asGif() 显示动态Gif asBitmap() 显示静态Gif
get(this).clearDiskCache() 清理磁盘缓存,需要在子线程执行
get(this).clearMemory() 清理内存缓存,可以在UI线程执行
- glide
- Glide
- Glide
- glide
- Glide
- Glide
- Glide
- Glide
- glide
- Glide
- Glide
- Glide
- Glide
- Glide
- Glide
- Glide
- Glide
- Glide
- 第七周 项目1
- UGUI 不规则按钮的点击
- LeetCode167. Two Sum II
- 第八周(1)项目2---建立链串的算法库
- Visual Studio Code开发Qt应用程序实现自动提示、语法高亮、代码导航、编译和调试
- Glide
- git相关
- Failed to start LSB 网络服务启动失败的四种解决方法
- 在一个英文字符串中,查询首先出现三次的英文字符
- Android隐藏标题栏
- [一点笔记]Java ExecutorService四种线程池的例子与说明
- 第1094期AI100_机器学习日报(2017-09-16)
- 第1096期AI100_机器学习日报(2017-09-18)
- Linux CentOS安装图形界面和软件