在Compose中,一旦Coil从URL加载图像,如何访问drawable

我正在使用accompanist-coil:0.12.0. 我想从一个 url 加载图像,然后将 drawable 传递给一个方法。我正在使用这个:

val painter = rememberCoilPainter(
        request = ImageRequest.Builder(LocalContext.current)
            .data(imageUrl)
            .target {
                viewModel.calcDominantColor(it) { color ->
                    dominantColor = color
                }
            }
            .build(),
        fadeIn = true
    )

然后通过画家Image这样:

Image(
   painter = painter,
   contentDescription = "Some Image",
)

图像加载没有任何问题,但calcDominantColor从未调用该方法。
我做错了吗?

更新:
我能够在 requestBuilder 中使用 Transformation 调用该方法,但我不确定,是否应该这样做,因为我实际上并没有转换Bitmap本身:

val painter = rememberCoilPainter(
        request = entry.imageUrl,
        requestBuilder = {
            transformations(
                object: Transformation{
                    override fun key(): String {
                        return entry.imageUrl
                    }
                    override suspend fun transform(
                        pool: BitmapPool,
                        input: Bitmap,
                        size: Size
                    ): Bitmap {
                        viewModel.calcDominantColor(input) { color ->
                            dominantColor = color
                        }
                        return input
                    }
                }
            )
        }
    )

这第一次工作正常,但是当可组合重新组合时,转换从缓存返回并且我的方法不运行。

以上是在Compose中,一旦Coil从URL加载图像,如何访问drawable的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>