为了账号安全,请及时绑定邮箱和手机立即绑定

Android路径形状中间的中心文本

Android路径形状中间的中心文本

神不在的星期二 2023-03-17 17:04:54
我正在尝试在 svg 路径中绘制一些文本。我需要它在形状的最大部分。并像第 1 点那样进行正常旋转。但目前我所拥有的只是第 2 点中的结果。有人可以帮助我实现第 1 点中的结果吗?我正在使用 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.GREENcanvas.drawPath(p, paint)paint.color = Color.BLACKpaint.setStyle(Paint.Style.FILL)paint.textSize = 20fvar 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.TRANSPARENTpaint.setStyle(Paint.Style.STROKE)paint.color = Color.REDpaint.strokeWidth  =2fcanvas.drawRect(rectF,paint)
查看完整描述

1 回答

?
慕莱坞森

TA贡献1810条经验 获得超4个赞

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

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

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

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


查看完整回答
反对 回复 2023-03-17
  • 1 回答
  • 0 关注
  • 78 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信