关于在Compose中创建此视图,我有一个问题,但我不知道如何实现它。
我当前的代码如下所示:
Box(
modifier = Modifier
.fillMaxSize()
.height(300.dp)
) {
Canvas(modifier = Modifier.matchParentSize()) {
drawRoundRect(
color = Color.Yellow,
cornerRadius = CornerRadius(16.dp.toPx(), 16.dp.toPx())
)
drawRoundRect(
color = Color.White,
topLeft = Offset(
x = size.width / 5,
y = size.height - 60.dp.toPx()
),
size = Size((size.width / 5) * 3, 50.dp.toPx() * 2),
cornerRadius = CornerRadius(24.dp.toPx(), 24.dp.toPx()),
)
}
Box(
modifier = Modifier
.fillMaxSize()
.padding(16.dp)
) {
Text(
text = "Test",
modifier = Modifier.align(Alignment.BottomCenter)
)
}
}
结果如下:
2条答案
按热度按时间ecfsfe2w1#
要从其他路径剪切某个路径,可以使用
clipPath
。对于外部拐角半径,您需要手动向路径添加圆弧,如下所示:
结果:
fquxozlt2#
你也可以使用一个自定义的Shape给你的合成对象一个特定的轮廓,只需要扩展Shape接口并覆盖createOutline()方法。
对于角,PathAPI提供了一个函数arcTo(),然后使用lineTo()方法绘制形状的边缘。
或使用. graphics图层/.背景等。