Canvas.rotate调用导致绘制的项目消失了吗?

时间:2012-07-19 03:09:01

标签: java android android-canvas

我正在尝试在将其绘制到画布时旋转位图。问题是,当我调用canvas.rotate(90)之后绘制的任何内容实际上都不会被绘制。当我在那里进行旋转调用时,运行以下代码将不会向屏幕绘制任何内容。如果我取出旋转调用它显示正常。为什么旋转调用会阻止位图显示在画布上?

        canvas.save();
        canvas.rotate(90);
        canvas.drawBitmap(leaves, null, leafRect, bitmapPaint);
        canvas.restore();

1 个答案:

答案 0 :(得分:2)

默认情况下,rotate()会从正确的中心旋转画布。您可能希望从位图的中心旋转。

    canvas.save();
    canvas.rotate(90, leafRect.x + (leafRect.width / 2), leafRect.y + (leafRect.height / 2));
    canvas.drawBitmap(leaves, null, leafRect, bitmapPaint);
    canvas.restore();

文档rotate(angle, x, y)

中的更多信息