如何在 Jetpack Compose Canvas 中使用 drawRoundRect 仅将底部 2 个角变圆

V.R*_*kov 8 android android-jetpack-compose

正如标题所说,我只是想弄清楚如何才能只圆化圆形矩形的底部两个角。

drawScope.drawRoundRect(
                topLeft = Offset(0f,0f),
                size = Size(100f,100f),
                cornerRadius = CornerRadius(x = 10f, y = 10f),
                color = boxPaint.color
            )
Run Code Online (Sandbox Code Playgroud)

这是我当前的代码,它绕过了所有角落。

Phi*_*hov 19

似乎drawRoundRect您只能设置左角或右角半径。

当您发现 Canvas API 缺少某些内容时,您可以使用它绘制几乎任何内容Path- 它具有更灵活的 API。

val cornerRadius = CornerRadius(10f, 10f)
val path = Path().apply {
    addRoundRect(
        RoundRect(
            rect = Rect(
                offset = Offset(0f, 0f),
                size = Size(100f, 100f),
            ),
            bottomLeft = cornerRadius,
            bottomRight = cornerRadius,
        )
    )
}
drawPath(path, color = Color.Red)
Run Code Online (Sandbox Code Playgroud)