Glide是一个Android的图片加载和缓存库,它主要专注于大量图片的流畅加载。是google所推荐的图片加载库,作者是bumptech。这个库被广泛运用在google的开源项目中,包括2014年的google I/O大会上发布的官方App。
WIKI地址:WIKI官网
Github地址:Github
1、多样化媒体加载
Glide 不仅是一个图片缓存,它支持 Gif、WebP等格式
2、生命周期集成
我们可以更加高效的使用Glide提供的方式进行绑定,这样可以更好的让加载图片的请求的生命周期动态管理起来
3、高效的缓存策略
4、 提供丰富的图片转换Api,支持圆形裁剪、平滑显示等特性
1、gradle引入库,implementation 'com.github.bumptech.glide:glide:4.7.1'
2、配置Glide的with load apply into等方法
public void loadImageView(ImageView view,String url){ //属性的配置 RequestOptions options = new RequestOptions() //加载成功之前占位图 .placeholder(R.mipmap.ic_launcher) //加载错误之后的错误图 .error(R.mipmap.ic_launcher) //指定图片的尺寸 .override(1000,800) //指定图片的缩放类型为fitCenter (等比例缩放图片,宽或者是高等于ImageView的宽或者是高。) .fitCenter() //指定图片的缩放类型为centerCrop (等比例缩放图片,直到图片的狂高都大于等于ImageView的宽度,然后截取中间的显示。) .centerCrop() .circleCrop()//指定图片的缩放类型为centerCrop (圆形) //跳过内存缓存 .skipMemoryCache(true) //缓存所有版本的图像 .diskCacheStrategy(DiskCacheStrategy.ALL) //跳过磁盘缓存 .diskCacheStrategy(DiskCacheStrategy.NONE) //只缓存原来分辨率的图片 .diskCacheStrategy(DiskCacheStrategy.DATA) //只缓存最终的图片 .diskCacheStrategy(DiskCacheStrategy.RESOURCE) .priority(Priority.HIGH) ; //加载图片 Glide.with(getApplicationContext()) .load(url) .apply(options) .into(view); } 复制代码
3、执行ImageView的加载
loadImageView(ivPic,"http://b.hiphotos.baidu.com/image/pic/item/d52a2834349b033bda94010519ce36d3d439bdd5.jpg"); 复制代码
详细的使用教程及option的配置,推荐参考
Android图片加载框架最全解析(八),带你全面了解Glide 4的用法
类型 | 说明 |
---|---|
Data | 代表原始的,未修改过的资源,对应dataClass |
Resource | 修改过的资源,对应resourceClass |
Transcoder | 资源转换器,比如BitmapBytesTranscoder(Bitmap转换为Bytes),GifDrawableBytesTranscoder |
ResourceEncoder | 持久化数据的接口,注意,该类并不与decoder相对应,而是用于本地缓存的接口 |
ResourceDecoder | 数据解码器,比如ByteBufferGifDecoder(将ByteBuffer转换为Gif),StreamBitmapDecoder(Stream转换为Bitmap) |
ResourceTranscoder | 资源转换器,将给定的资源类型,转换为另一种资源类型,比如将Bitmap转换为Drawable,Bitmap转换为Bytes |
Transformation | 比如对图片进行FitCenter,CircleCrop,CenterCrop的transformation,或者根据给定宽高对Bitmap进行处理的BitmapDrawableTransformation |
Target | request的载体,各种资源对应的加载类,含有生命周期的回调方法,方便开发人员进行相应的准备以及资源回收工作 |
1、构建Request,实现类为SingleRequest,用于发起一个加载的请求