Glide4的监听机制和Glide3的监听机制有很大的变化,本文只会介绍Glide4的监听机制。
首先粘贴一下代码,为Glide添加一个监听
//加载网络图片
Glide.with(this)
.asBitmap()
.load("https://img.pc841.com/2018/0922/20180922111049508.jpg")
.diskCacheStrategy(DiskCacheStrategy.DATA)
.addListener(new RequestListener<Bitmap>() {
@Override
public boolean onResourceReady(Bitmap resource, Object model, Target<Bitmap> target, DataSource dataSource, boolean isFirstResource) {
//图片加载成功后返回
//resource:目标图bitmap
//model:load方法里面的值
//target:ImageView本身
//dataSource:图片资源的来源,MEMORY_CACHE、LOCAL、REMOTE
//isFirstResource:是否是第一个资源
return false;
}
@Override
public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Bitmap> target, boolean isFirstResource) {
//图片加载失败后返回
//e:报错信息
//model:load方法里面的值
//target:ImageView本身
//isFirstResource:是否是第一个资源
return false;
}
})
.into(image_view);
以上代码的监听有两个回调方法,分别是:onResourceReady
和onLoadFailed
,当图片成功加载后回调onResourceReady
方法,当图片加载失败后回调onLoadFailed
方法。
[onResourceReady的返回参数]
- resource
目标图片的bitmap。
- model
load方法的参数值,如果加载的是res里的资源图片,model就是Integer,如果加载的是url,那么model就是url。
model的类型是Object的,所以model就是加载数据的对象。
- target
ImageView本身。
- dataSource
图片资源的来源,如果来自缓存,那么值为MEMORY_CACHE。如果来自本地,那么值为LOCAL。如果是第一次加载网络图片,那么必然是远程获取图片,那么值为REMOTE。
- isFirstResource
是否是第一次加载资源。
[onResourceReady的返回值]
true:图片显示不出来。
false:图片正常显示。
[onLoadFailed的返回参数]
- e
加载失败的错误信息。
- model
load方法的参数值,如果加载的是res里的资源图片,model就是Integer,如果加载的是url,那么model就是url。
model的类型是Object的,所以model就是加载数据的对象。
- target
ImageView本身。
- isFirstResource
是否是第一次加载资源。