Как повернуть текст, нарисованный по прямой линии (без радиуса) при использовании drawTextOnPath? - PullRequest
1 голос
/ 25 февраля 2020

Я хочу повернуть числа на холсте,

Вот что я пробовал:

override fun onDraw(canvas: Canvas) {    
var i = 0
while (i < rulerHeightInInch) {
val markingPositionYaxis =
            screenHeightInPx - (ydpinch * i + topThreshold)
paint.textSize = getPixelValueForDp(18.0f)
                    val path = Path()
                    path.reset()
                    path.moveTo(
                        (getPixelValueForDp(30f) + paint.textSize),
                        markingPositionYaxis +17
                    )
                    path.lineTo(
                        (getPixelValueForDp(30f) + paint.textSize),
                        markingPositionYaxis - (paint.textSize)
                    )
                    canvas.drawTextOnPath(nf.format(i / 32), path, 0f, 0f, paint)
}
i++
}
}

Первое изображение - это то, что у меня сейчас

This is what I have in portrait mode from top left to bottom left:

Второе изображение - это то, что я хочу This is what I want

Я не хочу рисовать по круговой траектории или используя нужный радиус сверху вниз по прямой

1 Ответ

0 голосов
/ 11 марта 2020

Вот как я это сделал:

canvas.save()
canvas.rotate(180f,(getPixelValueForDp(30f) + paint.textSize),markingPositionYaxis)
canvas.drawTextOnPath(nf.format(i / 32), path, 0f, 0f, paint)
canvas.restore()
...