【发布时间】:2021-06-23 06:32:15
【问题描述】:
我正在使用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
}
}
)
}
)
这第一次可以正常工作,但是当可组合重组时,转换从缓存返回并且我的方法没有运行。
【问题讨论】:
-
您要应用转换吗?
-
我想使用调色板库提取图像的主色并使用它
-
如果需要位图可以直接使用Coil。
-
任何链接或示例,请提供帮助
-
你能检查更新的问题吗?这是你的意思吗?
标签: android android-jetpack-compose