首页 > 解决方案 > 如何使画布上的圆弧居中 - Jetpack Compose?

问题描述

我不确定如何进行计算才能使这条弧线在画布上居中?有人可以指出我正确的方向吗?

Canvas(modifier = Modifier
    .background(Color.LightGray)
    .fillMaxWidth()
    .height(300.dp)
) {
        drawArc(
            color = Color.Blue,
            startAngle = 30f,
            sweepAngle = 300f,
            useCenter = false,
            style = Stroke(width = 50f, cap = StrokeCap.Round),
            size = size/2.25F
        )
}

标签: androidkotlinandroid-canvasandroid-jetpack-compose

解决方案


使用方法topLeft中的参数drawArc

就像是:

    val sizeArc = size/2.25F
    drawArc(
        color = Color.Blue,
        startAngle = 30f,
        sweepAngle = 300f,
        topLeft = Offset((size.width - sizeArc.width)/2f,(size.height - sizeArc.height)/2f),
        useCenter = false,
        style = Stroke(width = 50f, cap = StrokeCap.Round),
        size = sizeArc
    )

在此处输入图像描述


推荐阅读