如何在Android上沿正确方向移动旋转视图?

如何在Android上沿正确方向移动旋转视图?,android,animation,view,rotation,Android,Animation,View,Rotation,我有一个视图,可以通过编程以随机角度旋转 view.setRotation(rnd.nextInt(181)); 现在如何沿旋转方向移动视图?如果我使用 view.animate().translationXBy... 视图将向左或向右移动。有没有一种方法可以将translationX和translationY结合起来,使视图精确地沿旋转方向移动?或任何其他方法来实现这一点?通过视图设置动画()的方法使用旋转和平移动画的tween动画集 例如: RotateAnimation ani

我有一个视图,可以通过编程以随机角度旋转

view.setRotation(rnd.nextInt(181));
现在如何沿旋转方向移动视图?如果我使用

view.animate().translationXBy...

视图将向左或向右移动。有没有一种方法可以将translationX和translationY结合起来,使视图精确地沿旋转方向移动?或任何其他方法来实现这一点?

通过视图设置动画()的方法使用旋转和平移动画的tween动画集 例如:

    RotateAnimation animation=new RotateAnimation(0, 360);
    animation.setRepeatCount(-1);
    animation.setRepeatMode(Animation.RESTART);
    textView.setAnimation(animation);
    animation.start();

好的,我自己找到了毕达哥拉斯的解决方案:

float rotation = view.getRotation();
float translationX = (float)(Math.cos(Math.toRadians(rotation)) * distance);
float translationY = (float)(Math.sin(Math.toRadians(rotation)) * distance);
view.animate().translationXBy(translationX).translationYBy(translationY)

对不起,我不明白。此代码创建从0到360度的旋转动画。如果在移动视图时旋转,视图仍将沿错误方向移动,并在移动时旋转。这不是我想要实现的。你能详细说明吗?你必须创建旋转和平移动画的动画集AnimationSet=newanimationset(false);添加动画(新的旋转动画(0,360));set.addAnimation(新的TranslateAnimation(10100,10100));