通过画布旋转文本旋转角度

时间:2012-09-17 14:17:53

标签: java android

我正在创建一个图表,我需要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();

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

任何帮助都会很棒。

干杯

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

onDraw()子类中的TextView

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

为了使文字使用setText()

答案 2 :(得分:0)

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