根据业务需求,需要构建一个广告位;
设计的想法是采用Glide直接读取网络图片然后加载到一个Image View中。
Glide的文档介绍官方
https://muyangmin.github.io/glide-docs-cn/
根据编程的业务思想是需要在监听是否加载图片完成才弹出广告位加载成功的回调。
所以要在如下代码中实现:
// 通过Glide加载图片资源
Glide.with(getContext())
.load(adImageJsonObject.getImageData().getImageUrl())
.listener(new RequestListener<Drawable>() {
@Override
public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Drawable> target, boolean isFirstResource) {
return false;
}
@Override
public boolean onResourceReady(Drawable resource, Object model, Target<Drawable> target, DataSource dataSource, boolean isFirstResource) {
Log.d("Glide","onReady"+dataSource.name());
adImageListener.onSuccess();
return false;
}
})
.into(GoAdImageView.this);
}
特别注意的是:
这个ImageView或者其父布局是gone,这个图片是不会加载过去的
所以在使用Glide的时候要特别小心这个Visibility的特性;之前就是由于一直是gone的父布局导致
onSuccess
回调压根都不进去~