【问题标题】:How to move text on canvas horizontally straight line?如何在画布上水平直线移动文本?
【发布时间】:2017-01-23 12:17:56
【问题描述】:

我已经在画布上应用了旋转文本。现在我想水平移动文本,但它正在交叉移动。对于旋转,我做了类似下面的事情。

canvas.save();
canvas.rotate(-45,150,150);
canvas.drawText("Some Text", xAxis, 55, paint);
canvas.restore();

由于旋转应用于整个画布,它不会直线移动。现在我想让这个文本水平直线移动。

有什么办法吗?

上面代码的输出是这样的

如果我增加xAxis 的值,它不会像红色线一样移动。我希望它像图中的绿色线条一样移动。

【问题讨论】:

  • translate() 之前rotate()
  • @pskink 你能建议我怎么做吗?其实没有得到你
  • 参见Canvas 文档关于translaterotate 方法
  • @pskink 试过但没有成功
  • 那么你在哪里失败了?

标签: android canvas text draw move


【解决方案1】:

在您的代码中,您旋转了整个 Canvas 本身。想象一下,您将屏幕旋转 45 度并水平移动鼠标 - 它会随着旋转而移动。您需要另一种方法来旋转文本,或者需要根据旋转角度计算移动点(围绕点旋转点)。

【讨论】:

  • 我知道为什么文字会移动 45 度。你能建议我解决这个问题吗?
  • 创建位图和画布(第二个画布),在第二个画布上绘制(它将在位图上绘制),然后first_canvas.drawBitmap()。这样您就可以将位图放置在您想要的任何位置。
猜你喜欢
  • 2019-07-26
  • 2014-05-04
  • 1970-01-01
  • 2021-06-08
  • 1970-01-01
  • 2016-07-13
  • 1970-01-01
  • 2014-03-31
  • 1970-01-01
相关资源
最近更新 更多