在Coil
图像库中,我试图获取图像已成功加载的时间,然后使用 Palette 从位图中获取颜色,但我遇到了一个问题,如果我使用ImageRequests's
目标图像不会显示在图像视图中但onSuccess
完成正确,因为我能够从给定的位图中提取颜色
这是我所拥有的
_contentImage.load(File(image))
{
crossfade(true)
allowHardware(false)
listener(onError = { _, error ->
Log.d(SUBTAG, "Error -> ${error.message}")
},
onSuccess = {_, _ ->
Log.d(SUBTAG, "Content image loaded")
contentImageLoaded = true
checkContentLoaded()
})
target(
onSuccess = { result ->
Palette.from(result.toBitmap()).generate {
if (it != null) {
val paletteColor = it.getDominantColor(color)
_constraintLayout.setBackgroundColor(paletteColor)
}
}
}
)
}
如果我注释掉target
构建器的整个部分,图像显示正常,但显然我没有得到调色板的东西
如果我使用onSuccess
这样的方法,是否必须手动将可绘制对象设置为图像
target(
onSuccess = { result ->
Palette.from(result.toBitmap()).generate {
if (it != null) {
val paletteColor = it.getDominantColor(color)
_constraintLayout.setBackgroundColor(paletteColor)
}
}
_contentImage.setImageDrawable(result) // Set it here?
}
)
如果我这样做,图像会显示,但必须手动设置它似乎很奇怪,我觉得它应该自行设置
不知道这里有什么问题