0

我有ImageView一个自定义onDraw,我在一些(x,y)坐标上绘制了许多位图。这些位图无法更改。我想将整个图像旋转 -90 度,以便垂直放置水平绘制的图像。(是的,这个视图存在于纵向模式应用程序中。)

我尝试了许多变体,都使用,Canvas.rotate但都没有成功。旋转很容易,但获得所需的布局似乎是不可能的。我绘制的对象在视图之外偏移。我显然在枢轴坐标或其他方面做错了。任何帮助表示赞赏!Canvas.scaleMatrix.postRotate

canvas.rotate(-90.0f, getWidth() / 2, getHeight() / 2);

旋转画布的最佳解决方案是什么?

4

1 回答 1

0

看看这是否有帮助。API 演示中的 Compass.java 示例首先使用 canvas.translate,然后仅使用角度的 canvas.rotate。

    int w = canvas.getWidth();
    int h = canvas.getHeight();
    int cx = w / 2;
    int cy = h / 2;

    canvas.translate(cx, cy);
    if (mValues != null) {
        canvas.rotate(-mValues[0]);
    }
于 2013-06-27T03:15:36.723 回答