android-如何水平旋转由drawTextonPath创建的圆的文本?

android-如何水平旋转由drawTextonPath创建的圆的文本?,第1张

概述我有一个函数使用drawTextOnPath在画布上绘制文本.我计算了偏移量,一切正常,但我想以一种特殊的方式绘制它.当前文本旋转偏移量等于圆偏移量.我想将文本旋转90/45度.但是我不知道怎么做.请任何想法.privatevoiddrawLegend(Canvascanvas){canvas.save(Canvas.MATRIX_SAV

我有一个函数使用drawTextOnPath在画布上绘制文本.我计算了偏移量,一切正常,但我想以一种特殊的方式绘制它.当前文本旋转偏移量等于圆偏移量.我想将文本旋转90/45度.但是我不知道怎么做.

请任何想法.

private voID drawLegend(Canvas canvas) {    canvas.save(Canvas.MATRIX_SAVE_FLAG);    canvas.rotate(-228, centerX, centerY);    Path circle = new Path();    double halfCircumference = (radius * 2 * Math.PI) - ((radius * 2 * Math.PI) / 8) * 2;    double increments = 5;    for (int i = 0; i <= this.mMaxSpeed; i += increments) {        circle.addCircle(centerX, centerY, radius, Path.Direction.CW);        canvas.drawTextOnPath(String.format("%d", i),                circle,                (float) (i * halfCircumference / this.mMaxSpeed),                -20f,                scalePaint);    }    canvas.restore();}

这是当前映射


这是我如何展示它的方式

解决方法:

解决方案不是使用drawTextOnPath进行绘制,而是使用drawText在画布上进行绘制

        canvas.drawText(String.valueOf(0), (x - wIDth / 2) + 35, (y + height / 2) - 25, scalePaint);        canvas.drawText(String.valueOf(5), (x - wIDth / 2) - 20, (y) + 8, scalePaint);        canvas.drawText(String.valueOf(10), (x - wIDth / 2) + 30, (y - height / 2) + 40, scalePaint);        canvas.drawText(String.valueOf(15), (x), (y - height / 2) - 18, scalePaint);        canvas.drawText(String.valueOf(20), (x + wIDth / 2) - 30, (y  - height / 2) + 40, scalePaint);        canvas.drawText(String.valueOf(25), (x + wIDth / 2) + 25, (y) + 8, scalePaint);        canvas.drawText(String.valueOf(30), (x + wIDth / 2) - 35, (y + height / 2) - 25, scalePaint);

7个月后更新

秘诀是使用sin和cos函数来计算x和y的偏移量.

double theta = (7 * PI / 4) - (i * (2 * PI / 40));double xPos = radiusScale * 1.2 * Math.sin(theta) + centerX - wIDthText / 2;double yPos = radiusScale * 1.2 * Math.cos(theta) + centerY + heightText / 2;canvas.drawText(textNotch, (float)xPos, (float)yPos, scalePaint);
总结

以上是内存溢出为你收集整理的android-如何水平旋转由drawTextonPath创建的圆的文本?全部内容,希望文章能够帮你解决android-如何水平旋转由drawTextonPath创建的圆的文本?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1120805.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存