Zeichnen Sie mit drawArc runde Ecken in die LeinwandAndroid

Forum für diejenigen, die für Android programmieren
Guest
 Zeichnen Sie mit drawArc runde Ecken in die Leinwand

Post by Guest »

Ich versuche, ein Kreisdiagramm in Jetpack Compose zu erstellen. Ich versuche, für jeden Kreis im Diagramm runde Ecken zu bilden. Aber ich habe Probleme, Kurven zu fahren. Ich habe versucht, cap = StrokeCap.Round in drawArc in Canvas zu verwenden, hatte aber kein Glück, nur die Ecken abzurunden.
Das habe ich so weit, und das Ergebnis sieht so aus. Wie Sie sehen können, sind die Ecken jedes Kuchens rechteckig. Gibt es eine Möglichkeit, sie rund zu machen?
Image
< /p>

Code: Select all

@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()
}
}
Ich versuche, den Bogen so aussehen zu lassen
[img]https: //i.sstatic.net/cSebS.jpg[/img]

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post