5

从Coil中的 URL 获取图像时如何显示进度条。?

4

3 回答 3

2

我只在 Compose 中尝试过,但我认为您可以像 Glide 一样使用它

将进度条设置为占位符

val circularProgressDrawable = CircularProgressDrawable(this)
circularProgressDrawable.strokeWidth = 5f
circularProgressDrawable.centerRadius = 30f
circularProgressDrawable.start()

imageView.load("https://www.example.com/image.jpg") {
    crossfade(true)
    placeholder(circularProgressDrawable)
    transformations(CircleCropTransformation())
}
于 2021-08-26T15:31:07.220 回答
2

我没有和 Coil 一起工作,但我建议你可以做下一个:

// Before request run on the needed method
yourProgressbar.visibility = View.VISIBLE

val request = ImageRequest.Builder(context)
.data("https://www.example.com/image.jpg")
.target { drawable ->
    yourProgressbar.visibility = View.INVISIBLE
}.build()   

val disposable = imageLoader.enqueue(request)

这是官方文档的示例

于 2021-08-26T12:24:53.120 回答
1

使用ImageRequest.Listener

例子:

val imageRequest = ImageRequest.Builder(context)
    .data(url)
    .listener(
        onStart = {
            // set your progressbar visible here
        },
        onSuccess = { request, metadata ->
            // set your progressbar invisible here
        }
    )
    .build()

imageLoader.enqueue(request)
于 2021-09-14T09:01:21.427 回答