在Android中旋转Drawable

时间:2016-08-31 21:23:05

标签: c# android canvas xamarin bitmap

如何在Android中旋转Drawable?

我有一个继承自Drawable并重写Draw(canvas)方法的类,以便创建一个箭头,我需要将其放在一条线上并旋转它以匹配线的斜率。

我无法弄清楚如何旋转Drawable;我在这看到的一切都是如何旋转Bitmap,而不是Drawable。

我先尝试过旋转画布,但这会导致奇怪的结果。

有什么建议吗?

我见过很多人讨论过的最后一件事就是:

how to rotate a bitmap 90 degrees

1 个答案:

答案 0 :(得分:0)

所以我明白了。似乎有一种非常具体的方法,你必须旋转画布,以旋转它上面的drawable:

canvas.Save(SaveFlags.Matrix);
canvas.Rotate(_degrees, _location.X, _location.Y);
canvas.DrawPath(path, _paint);
canvas.Restore();

所以基本上,你保存画布'当前状态,旋转它(这里,我使用_location,它保存用户从屏幕上抬起手指的点),然后在旋转的画布上绘制,然后将其恢复到之前的状态(绘制的抽象画仍然绘制)。