如何在 Jetpack Compose 的路径上绘制文本?

fra*_*erm 3 android android-jetpack-compose

现在有没有办法用jetpack compose在自定义路径上写文本?

这是我想要实现的示例图像:

在半圆路径上绘制的文本

Mut*_*ran 8

我们习惯于在 Compose 中nativeCanvas绘制文本Path,就像我们在自定义视图中通常所做的那样。

前任:

@Composable
fun ArcTextExample() {
    val paint = Paint().asFrameworkPaint()
    Canvas(modifier = Modifier.fillMaxSize()) {
        paint.apply {
            isAntiAlias = true
            textSize = 24f
            typeface = Typeface.create(Typeface.DEFAULT, Typeface.BOLD)
        }

        drawIntoCanvas {
            val path = Path()
            path.addArc(RectF(0f, 100f, 200f, 300f), 270f, 180f)
            it.nativeCanvas.drawTextOnPath("Hello World Example", path, 0f, 0f, paint)
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

注意:我们应该使用 android.graphics.Path

结果将是这样的:

在此处输入图片说明

  • @fraherm,根据我的理解,“DrawScope”中没有方法来绘制文本。 (3认同)