Android:如何选择RotateAnimation的旋转方向?

罗兰德尔

我目前正在开发一种应用程序,在该应用程序中,我想用箭头指示路径(它就像指南针一样)。

为了将箭头移向正确的方向,我使用了RotateAnimation该类。它工作得很好,但是当初始角度位置远离最终角度位置时,旋转不会选择更快的方式。

在此视频中,您可以看到该行为:https : //youtu.be/vypZni_1s3I

这里是用户单击按钮“ 02”时执行的代码:

RotateAnimation rotateAnimation = new RotateAnimation(355f, 8f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
rotateAnimation.setInterpolator(new LinearInterpolator());
rotateAnimation.setDuration(3000);
rotateAnimation.setFillAfter(true);
test.startAnimation(rotateAnimation);

这里,当用户单击按钮“ 03”时执行的代码:

RotateAnimation rotateAnimation = new RotateAnimation(8f, 350f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
rotateAnimation.setInterpolator(new LinearInterpolator());
rotateAnimation.setDuration(3000);
rotateAnimation.setFillAfter(true);
test.startAnimation(rotateAnimation);

正如您在视频中看到的那样,旋转不会选择更快的方式。在第一个动画中,更快的方法是顺时针旋转(但系统选择ann逆时针旋转),而在第二个动画中,更快的方法是逆时针旋转(但系统选择顺时针旋转)。

是否有解决方案或技巧可以迫使系统选择更快的方法,以便从点A旋转到点B?

大卫·弗尼尔(David Fournier)

如果参数toDegrees大于参数,RotationAnimation对象将顺时针旋转fromDegrees您必须处理一个事实,即您实际上不想从355f8f,而是从355f368f360度加8度)。

因此,在这里您将按如下所示更改您的两段代码:

RotateAnimation rotateAnimation = new RotateAnimation(355f, 368f, 
Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
rotateAnimation.setInterpolator(new LinearInterpolator());
rotateAnimation.setDuration(3000);
rotateAnimation.setFillAfter(true);
test.startAnimation(rotateAnimation);

RotateAnimation rotateAnimation = new RotateAnimation(368f, 350f, 
Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
rotateAnimation.setInterpolator(new LinearInterpolator());
rotateAnimation.setDuration(3000);
rotateAnimation.setFillAfter(true);
test.startAnimation(rotateAnimation);

但是我建议您,如果您愿意使用API​​ 14+创建应用程序以使用如下animate()方法View

test.animate()
  .rotationBy(13f)
  .setDuration(3000)
  .setInterpolator(new LinearInterpolator())
  .start();

rotationBy(offset)方法将以中心轴为中心旋转offset角度,如果偏移为正,则顺时针旋转,否则为逆时针旋转。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Android中降低RotateAnimation的速度

来自分类Dev

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

来自分类Dev

Android Studio:如何使ImageView沿旋转方向移动

来自分类Dev

如何在Android上处理重叠的RotateAnimation-s?

来自分类Dev

Android-如何使RotateAnimation更流畅和“物理”?

来自分类Dev

Android布局XML旋转方向

来自分类Dev

如何使箭头图像旋转方向?

来自分类Dev

Android:即使设备自动旋转屏幕关闭,如何强制反转肖像方向?

来自分类Dev

如何根据对象的方向旋转对象

来自分类Dev

如何旋转对象使其面向特定方向?

来自分类Dev

如何使背景方向保持屏幕旋转前夕

来自分类Dev

如何使箭头图像旋转方向?{Pygame}

来自分类Dev

如何根据对象的方向旋转对象

来自分类Dev

如何围绕选择中心旋转选择的QGraphicsItems?

来自分类Dev

如何围绕选择中心旋转选择的QGraphicsItems?

来自分类Dev

选择时旋转的 TouchableOpacity 在 Android 上崩溃

来自分类Dev

发生方向改变时是否可以旋转imageview?在Android中

来自分类Dev

Android-如何旋转图像

来自分类Dev

如何在SVG中旋转期间保持文本方向不变

来自分类Dev

如何在Xamarin Forms中处理屏幕旋转/方向?

来自分类Dev

如何移动旋转的画布图像而无方向感?

来自分类Dev

如何确定三角形的方向/旋转?

来自分类Dev

如何将按钮旋转回水平方向?

来自分类Dev

如何将MapView旋转到移动方向

来自分类Dev

如何在Windows Phone 8.1中更改方向旋转定时

来自分类Dev

如何在Xamarin Forms中处理屏幕旋转/方向?

来自分类Dev

如何在旋转时修复native.newTextField方向

来自分类Dev

如何使对象沿我的鼠标光标方向旋转?

来自分类Dev

如何获得 RichTextBox 中选择的方向?

Related 相关文章

  1. 1

    如何在Android中降低RotateAnimation的速度

  2. 2

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

  3. 3

    Android Studio:如何使ImageView沿旋转方向移动

  4. 4

    如何在Android上处理重叠的RotateAnimation-s?

  5. 5

    Android-如何使RotateAnimation更流畅和“物理”?

  6. 6

    Android布局XML旋转方向

  7. 7

    如何使箭头图像旋转方向?

  8. 8

    Android:即使设备自动旋转屏幕关闭,如何强制反转肖像方向?

  9. 9

    如何根据对象的方向旋转对象

  10. 10

    如何旋转对象使其面向特定方向?

  11. 11

    如何使背景方向保持屏幕旋转前夕

  12. 12

    如何使箭头图像旋转方向?{Pygame}

  13. 13

    如何根据对象的方向旋转对象

  14. 14

    如何围绕选择中心旋转选择的QGraphicsItems?

  15. 15

    如何围绕选择中心旋转选择的QGraphicsItems?

  16. 16

    选择时旋转的 TouchableOpacity 在 Android 上崩溃

  17. 17

    发生方向改变时是否可以旋转imageview?在Android中

  18. 18

    Android-如何旋转图像

  19. 19

    如何在SVG中旋转期间保持文本方向不变

  20. 20

    如何在Xamarin Forms中处理屏幕旋转/方向?

  21. 21

    如何移动旋转的画布图像而无方向感?

  22. 22

    如何确定三角形的方向/旋转?

  23. 23

    如何将按钮旋转回水平方向?

  24. 24

    如何将MapView旋转到移动方向

  25. 25

    如何在Windows Phone 8.1中更改方向旋转定时

  26. 26

    如何在Xamarin Forms中处理屏幕旋转/方向?

  27. 27

    如何在旋转时修复native.newTextField方向

  28. 28

    如何使对象沿我的鼠标光标方向旋转?

  29. 29

    如何获得 RichTextBox 中选择的方向?

热门标签

归档