引入依赖
implementation 'com.github.bumptech.glide:glide:3.6.1'
简单使用
对一个完整的功能请求,Glide 建造者要求最少有三个参数。
- with 传入context
- load 图片地址
- into 控件
例子:
ImageView imageView = findViewById(R.id.img);
Glide.with(this)
.load("图片地址")
.into(imageView);
占位符
- placeholder 在图片未加载时使用的图片
- error 图片加载失败时显示的图片
Glide.with(this)
.load("图片地址")
.placeholder(R.mipmap.ic_launcher)
.error(R.mipmap.ic_launcher)
.into(imageView);
ps:这两个方法用的图片只能是已经初始化的 drawable 对象或者指明它的资源。
动画
- crossFade 默认的淡入淡出动画,可以添加参数(时长,或者animation文件)
- dontAnimate 取消动画,直接加载
GIF
在加载gif时,与正常显示图片的用法是一致的。唯一有区别的是如果要显示GIF,但来源并不是一个gif,而是一张图片时,就与初衷不同了。
- asGIF 判断是否是gif,如果不是调用error方法。
Glide.with(this)
.load("gif地址")
.asGif()
.error(R.drawable.a)
.into(imageView);
如果只想要显示 Gif 的第一帧,你可以调用 asBitmap() 去保证其作为一个常规的图片显示,即使这个 URL 是一个 Gif。
- asBitmap 转为bitmap类型。
Glide.with(this)
.load("gif地址")
.asBitmap()
.into(imageView);
视频加载
Gilde支持加载本地视频。
String filePath = "本地视频地址.MP4";
Glide.with(this)
.load(Uri.fromFile(new File(filePath)))
.into(imageView);
图片缩放
- dontTransform 取消图片变换。
- fitCenter 将图片按照原始的长宽比充满全屏。
- centerCrop 对原图的中心区域进行裁剪。
- override 设置图片大小
fitCenter
Glide.with(context).load(url)
.skipMemoryCache(true)
.diskCacheStrategy(DiskCacheStrategy.NONE)
.dontTransform()
.fitCenter()
.into(imageView);
centerCrop 通常配合override一起使用
Glide.with(context).load(url)
.skipMemoryCache(true)
.diskCacheStrategy(DiskCacheStrategy.NONE)
.dontTransform()
.override(100,100)
.centerCrop()
.into(imageView);