繁体   English   中英

在Android中旋转Drawable

[英]Rotate a Drawable in Android

如何在android中旋转Drawable?

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

我不知道如何旋转Drawable。 我在此看到的所有内容都是如何旋转位图而不是Drawable。

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

有什么建议么?

我已经看到很多人讨论过的最后一件事是:

如何将位图旋转90度

所以我想通了。 似乎有一种非常特定的方法,您必须旋转画布才能在其上旋转可绘制对象:

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

因此,基本上,您要保存画布的当前状态,然后将其旋转(在这里,我使用的是_location,它保留了用户从屏幕上抬起手指的位置),然后在旋转后的画布上进行绘制,然后将其还原为先前的状态(可绘制的绘制仍处于绘制状态)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM