0

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?
        }
    )

如果我这样做,图像会显示,但必须手动设置它似乎很奇怪,我觉得它应该自行设置

不知道这里有什么问题

4

0 回答 0