温馨提示:本文翻译自stackoverflow.com,查看原文请点击:android - How to rotate text drawn in a straight line (without radius) when using drawTextOnPath?
android android-canvas android-custom-view

android - 使用drawTextOnPath时如何旋转以直线(无半径)绘制的文本?

发布于 2020-05-14 03:57:52

我想旋转画布上的数字,

这是我尝试过的:

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++
}
}

第一张图片就是我现在所拥有的

这是我从左上方到左下方在纵向模式下的内容:

第二张图片就是我想要的 这就是我要的

我不想绘制圆形路径,也不想使用想要从上到下的直线半径

查看更多

提问者
Siddarth G
被浏览
20
Siddarth G 2020-03-11 20:14

这是我的方法:

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