在Canvas中旋转两个单独的对象(路径)

时间:2011-02-23 01:36:35

标签: android canvas rotation

我使用canvas.DrawPath()在画布上绘制了两个箭头。我正在使用canvas.rotate()进行旋转,但显然两个箭头的旋转量相同。

我希望能够单向旋转一个箭头,并以不同的方向旋转另一个箭头。

这可能吗?

1 个答案:

答案 0 :(得分:4)

当您使用canvas.rotate()时,您正在改变与画布关联的变换矩阵,因此您之后绘制的所有内容都将受到矩阵当前状态的影响,您必须执行以下操作:

canvas.save();     //Save current canvas matrix state
canvas.rotate(angle);
canvas.DrawPath(); //Draw first arrow
canvas.restore();  //Restore canvas matrix to saved state
canvas.DrawPath(); //Draw second arrow without the rotation