我正在使用RotateAnimation
设置指向箭头的动画,以便在用户更新目标点或当前设备位置更改时更新其位置。我正在使用interpolator.accelerate_decelerate
使动画看起来更加流畅和“物理”。
一切正常,直到当前动画仍在处理时另一个更新到来,例如,当用户在指向箭头仍在旋转时更改目的地时。当发生这种情况时,箭头突然反弹,看起来很丑,我试图避免这种情况。我试图实现一个队列,使每个下一个动画等到上一个结束,它看起来不错,但行为变得非常不合逻辑。
所以我的问题如下:
1)在动画逐个启动并相互重叠的情况下,是否有某种方法使动画过渡更加流畅?
2)有没有办法停止当前正在处理的动画并获得对象的中间位置? - 如果我决定在结束前停止动画并使用当前位置作为起点下一个动画。
答案 0 :(得分:1)
确定最简单的方法是创建一个类似于RotateAnimation的自定义动画并在applyTransformation中保存当前旋转角度,然后可以将此角度用作下一个动画的起始角度,从而避免“跳跃”
答案 1 :(得分:0)
扩展ImageView的自定义类,它根据磁场中偶极子的角运动执行动画: