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

标签 android canvas rotation

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

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

这可能吗?

最佳答案

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

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

关于android - 在 Canvas 中旋转两个单独的对象(路径),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5086120/

相关文章:

java - 我想用 Java 为 Android 解析 JSON,但 Gson 和 Jackson 都无法正常工作

javascript - 如何将回调函数的返回值发送到主函数

iphone - UIViewController View 在旋转设置为仅纵向时旋转

java - 按钮不旋转 libGDX

javascript - 来自托管文件的 Canvas 图像 src

jquery - 如何旋转到 45 度并同时向左移动动画?

java - 在 kotlin 中将 String 转换为 JsonObject 返回 null

android - Ionic/Cordova : How to force app to refresh on start, 即使它在后台?

安卓用户界面设计 : Interactive ListView Elements

android - 在 Android 4.2 中绘制小​​于一个像素粗的线条需要抗锯齿