我正在尝试在Jetpack Compose中创建一个饼图。我想让每个饼图的角变圆。但是,我在使角变圆方面遇到了问题。我尝试在画布的
这是我目前的情况,结果看起来像这样。正如你所见,每个饼图的角都是矩形的。有没有办法使它们变圆?
我正在努力让弧线看起来像这样
drawArc
中使用cap = StrokeCap.Round
,但是没有成功使角变圆。这是我目前的情况,结果看起来像这样。正如你所见,每个饼图的角都是矩形的。有没有办法使它们变圆?
@Composable
fun Chart() {
Canvas(
modifier = Modifier
.fillMaxWidth()
.aspectRatio(1f)
) {
drawIntoCanvas {
val width = size.width
val radius = width / 2f
val strokeWidth = radius * .3f
var startAngle = 0f
val items = listOf(25f, 25f, 25f, 25f, 25f, 25f, 25f, 25f)
items.forEach {
val sweepAngle = it.toAngle
drawArc(
color = Color.Gray,
startAngle = startAngle,
sweepAngle = sweepAngle - 5,
useCenter = false,
topLeft = Offset(strokeWidth / 2, strokeWidth / 2),
size = Size(width - strokeWidth, width - strokeWidth),
style = Stroke(strokeWidth)
)
startAngle += sweepAngle
}
}
}
}
private val Float.toAngle: Float
get() = this * 180 / 100
@Preview(showBackground = true)
@Composable
fun GreetingPreview() {
MyApplicationTheme {
Chart()
}
}
我正在努力让弧线看起来像这样