0

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

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

1 回答 1

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)

于 2012-07-19T03:12:51.527 回答