此处不是讲解 如何使用Coil库以及使用它的优点,有兴趣的同学可以查询下
Coil在github上面的这个库,使用起来还是很方便的。
在这里主要讲解使用这个库的过程中遇到的一个问题:
需求
要求从网络中加载图片,在图片未加载出来的时候,有一个loading的占位符,加载成功或失败占位符消失
相信加载失败使用占位图大家都觉得很简单,这里要讲的不是失败占位图的问题,好了,进入正文
如何在加载网络图片过程中有loading效果呢?
我们可以使用Imageview的扩展方法
@JvmSynthetic
inline fun ImageView.setImage(
data: Any?,
loadingImage:ProgressBar?,
imageLoader: ImageLoader = context.imageLoader,
builder: ImageRequest.Builder.() -> Unit = {}
): Disposable {
val request = ImageRequest.Builder(context)
.data(data)
.target(
onStart = { placeholder ->
loadingImage?.isVisible = true
},
onSuccess = { result ->
loadingImage?.isVisible = false
this.load(result)
},
onError = { error ->
loadingImage?.isVisible = false
}
)
.apply(builder)
.build()
return imageLoader.enqueue(request)
}