郭霖 公众号 glide学习
声明
1,添加依赖
implementation ‘com.github.bumptech.glide:glide:3.7.0’
2,添加权限
加载图片
public void loadImage(ImageView view) {
String url = "http://cn.bing.com/az/hprichbg/rb/Dongdaemun_ZH-CN10736487148_1920x1080.jpg";
Glide.with(this).load(url).into(view);
}
说明:
1,Glide.with()方法用于创建一个加载图片的实例。with()可以接收Context、Activity或者Fragment类型的参数;也可以获取当前应用程序的ApplicationContext。传入的实例会决定Glide加载图片的生命周期:如果传入的是Activity或者Fragment,那么当Activity或者Fragment被销毁时,图片也会停止加载;如果是ApplicationContext,那么只有当应用程序被杀掉时,图片加载才会停止。
2,load()方法用于指定待加载的图片资源。Glide支持加载网络图片、本地图片、应用资源、二进制流、Uri对象等等。因此load()方法有很多个重载,除了上面加载一个字符串网址,也可以这样用:
// 加载本地图片File file = getImagePath();
Glide.with(this).load(file).into(imageView);
// 加载应用资源
int resource = R.drawable.image;
Glide.with(this).load(resource).into(imageView);
// 加载二进制流
byte[] image = getImageBytes();
Glide.with(this).load(image).into(imageView);
// 加载Uri对象
Uri imageUri = getImageUri();
Glide.with(this).load(imageUri).into(imageView);
3,into()决定图片显示在哪个ImageView上(不仅仅能ImageView类型的参数)
占位图
1,指在图片加载的过程中,先显示一张临时的图片,等图片加载出来了再替换成要加载的图片。placeholder()
2,异常占位图:某些异常情况导致图片加载失败,这时就显示异常占位图
指定图片格式
1,Glide支持加载gif图片(Glide内部会自动判断图片格式)
2,指定加载图片必须是一张静态图片 asBitmap()
注意:如果指定了只能加载动态图片,而传入一张静图的话,会加载失败。
指定图片大小
1,Glide会自动判断ImageView的大小,然后只将这么大的图片像素加载到内存中,节省内存开支,避免内存浪费。
2,可以手动指定一个固定的大小 override()
Glide.with(this).load(urlGif)
//指定为静态图片 同样的指定动态asGif()
.asBitmap()
//占位图
.placeholder(R.drawable.loading)
//异常占位图
.error(R.drawable.error)
//禁用缓存
.diskCacheStrategy(DiskCacheStrategy.NONE)
//图片会被加载成100*100像素的尺寸
.override(100,100)
.into(view);