亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

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 關注
  • 100 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號