小编Sur*_*Sau的帖子

Jetpack Compose Canvas BlendMode.SRC_IN 甚至使背景透明

我尝试使用 BlendMode.SRC_IN 在 PNG 图像(具有透明背景)顶部添加覆盖颜色,但背景变为黑色,而不是设置的背景颜色,就像也屏蔽了背景像素一样。

@Composable
fun Icon(
        fraction: Float,
        image: ImageAsset,
        defaultColor: Color = Color(0xFFEEEEEE),
        progressColor: Color = Color(0xFF888888),
        size: Dp = image.width.dp
) {
    Box(modifier = Modifier.size(size = size)) {
        Canvas(modifier = Modifier.fillMaxSize()) {
            drawImage(
                    image = image,
                    dstSize = IntSize(
                            width = size.toIntPx(),
                            height = size.toIntPx()
                    ),
                    colorFilter = ColorFilter.tint(
                            color = defaultColor
                    ),
                    blendMode = BlendMode.Src
            )
            drawIntoCanvas {
                val paint = Paint().apply {
                    color = progressColor
                    blendMode = BlendMode.SrcIn
                }

                it.restore()
                it.drawRect(
                        rect = Rect( …
Run Code Online (Sandbox Code Playgroud)

android android-jetpack-compose

12
推荐指数
2
解决办法
5736
查看次数

标签 统计

android ×1

android-jetpack-compose ×1