2017-01-23 105 views
0

我在画布上应用了旋转的文字。现在我想横向移动文本,但它正在交叉移动。对于旋转我做了如下所示。如何在水平直线上移动画布上的文字?

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

由于应用于整个画布上的旋转,它不是直线移动。现在我想让这段文字沿水平直线移动。

有什么办法吗?

上述代码的输出是这样的

output of above code

权不,如果我增加它的移动欲行红色的xAxis值。我想让它像图片中的绿线一样移动。

+0

'translate()'它在rotate()之前' – pskink

+0

@pskink你能告诉我怎么做吗?其实没有得到你 –

+0

看'画布'文档有关'translate'和'旋转'方法 – pskink

回答

0

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

+0

我知道为什么文字移动45度。你能建议我解决这个问题吗? –

+0

创建位图和画布(第二个画布),在第二个画布上绘制(它将在位图上绘制),然后'first_canvas.drawBitmap()'。这样你可以将位图放在任何你想要的地方。 – Ekalips