我正在尝试定期移动带有平移和旋转动画的箭头图像。我在Imageview上实现了动画。当动画第一次停止时,imageview停留在新位置,但是当另一个动画开始时,说5秒后动画应从新位置开始,但它始终从xml中指定的位置开始。我是否还需要做其他事情以确保动画始终从imageview的新位置开始?
答案 0 :(得分:0)
我猜你已经实现了AnimationListener :: onAnimationEnd,并为方法onAnimationEnd()设置了箭头图像的新位置。所以它保持在新的位置。 因此,检查您的翻译动画,确保它使用xType,yType作为Animation.RELATIVE_TO_SELF。 请参考TranslateAnimation :: TranslateAnimation public TranslateAnimation(int fromXType,float fromXValue,int toXType,float toXValue, int fromYType,float fromYValue,int toYType,float toYValue){
希望它会有所帮助。
答案 1 :(得分:0)
您需要启动下一个完成旧动画的动画,或者重置箭头的LayoutParams以将其放置在停止的位置。如果出现闪烁,请尝试在动画开始之前设置LayoutParams,然后执行反向移动(从旧位置移动到0,0而不是0,0到新位置)。希望这会有所帮助。