gpt4 book ai didi

java - Android 路径形状中间的文本居中

转载 作者:行者123 更新时间:2023-12-02 09:42:03 25 4
gpt4 key购买 nike

我正在尝试在 svg 路径内绘制一些文本。我需要它在形状的最大部分。并使用像第 1 点那样的正常旋转。但目前我所拥有的只是像第 2 点那样的结果。有人可以帮助我实现第 1 点中的结果吗?

draw a path with canvas and draw a text in this path

我正在使用 Canvas 绘制路径:

var bitmap = Bitmap.createBitmap(
1000,
1000,
Bitmap.Config.ARGB_8888)
var canvas = Canvas(bitmap)
canvas.drawColor(Color.LTGRAY)

var paint = Paint()
paint.color =Color.GREEN
canvas.drawPath(p, paint)

paint.color = Color.BLACK
paint.setStyle(Paint.Style.FILL)
paint.textSize = 20f
var text= "250"
canvas.drawTextOnPath(text,
p,
50f,0f,
paint)

var rectF = RectF()
pathObject.computeBounds(rectF, true)

//the rectangle to show the rect of the Path
paint.color = Color.TRANSPARENT
paint.setStyle(Paint.Style.STROKE)
paint.color = Color.RED
paint.strokeWidth =2f
canvas.drawRect(rectF,paint)

最佳答案

在 Android 中没有可以调用的简单方法来查找路径中最大区域的中心。

您需要做的是使用算法找到适合多边形的最大圆。然后将文本放置在该位置。

这个问题可能有用:Largest circle inside a non-convex polygon

首先,您需要将路径转换为多边形(一组直线段)。您的路径可能已经是这种形式。如果不是(即它包含圆弧和贝塞尔曲线等),那么您需要将其转换为多边形。在 API 26+ 中,您可以使用 Path.approximate() 来实现此目的。在早期版本的 Android 中,该过程会有点棘手。

关于java - Android 路径形状中间的文本居中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56990837/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com