2017-01-23 8 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()' it перед 'rotate()' – pskink

+0

@pskink вы можете мне предложить? На самом деле вам не удалось получить –

+0

, см. Документацию 'Canvas' о методах' translate' и 'rotate' – pskink

ответ

0

В вашем коде вы полностью повернули Canvas. Представьте, что вы поворачиваете свой экран на 45 градусов и перемещаете мышью по горизонтали - он будет двигаться с этим вращением. Вам нужен другой подход для поворота текста, или вам понадобится вычислить точку перемещения в зависимости от угла поворота (поверните точку вокруг точки).

+0

Я знаю, почему текст перемещается на 45 градусов. Можете ли вы предложить мне решение для этого? –

+0

Создайте растровое изображение и холст (второй холст), нарисуйте второй холст (он будет рисовать по растровому изображению), а затем 'first_canvas.drawBitmap()'. Таким образом, вы можете разместить растровое изображение везде, где хотите. – Ekalips