2

我正在创建一个图表,我需要一个 y 轴的轴标题。

问题是我需要它在水平方向 -90 度。

这是我目前旋转文本的方式。

    paint.setTypeface(Typeface.SANS_SERIF);
    canvas.save();
    canvas.rotate(-90,15,viewHeight/2+20);
    canvas.drawText(yAxisTitle,15,viewHeight/2+20, paint);
    canvas.restore();

问题是一旦它在垂直方向上旋转它就不是直的。好像它走得太远了?

任何帮助都会很棒。

干杯

4

3 回答 3

1

在这种情况下,它似乎只是在模拟器上发生。在 4 台设备上测试都以正确的角度显示文本?!

于 2012-10-15T14:34:48.117 回答
0

我的解决方案如下:我绘制背景位图,然后是文本。我不是先旋转画布然后在画布上绘制位图和文本,而是先在位图(在其画布上)上绘制文本,然后旋转画布,然后在旋转的画布上绘制位图。然后字符是直的。如果您没有背景图像,您可以创建一个透明位图,将其用作背景,然后在旋转画布之前在其上绘制文本。

于 2013-11-07T13:02:01.627 回答
0

onDraw()在一个TextView子类中:

        canvas.save();
        canvas.translate(0, getHeight());
        canvas.rotate(-90);
        Layout layout = getLayout();
        if (layout != null)
            layout.draw(canvas);
        canvas.restore();

为了把文本使用setText()

于 2012-09-17T14:48:42.223 回答