如果我要给一个控件做向右移动的动画,可以使用TranstateAnimation来使其向右移动,但是动画执行完成之后控件还是要回到起始位置。
如果我需要让一个控件向右移动并且动画执行完成后不回到起始位置,我们可以使用ObjectAnimator或者ValueAnimator来实现。
需求:动态的改变某个控件的属性值,已达到动画效果,例如:改变背景颜色值,改变位置,改变透明度等等值。
我有一个用于展示效果的ImageView:
private ImageView iv_icon;
当执行以下方法时,会向右移动,并且不会回来
public void startAnima(){ ObjectAnimator animator = ObjectAnimator.ofFloat(iv_icon, "translationX", 0 , 500); animator.setDuration(2000); animator.start(); }
当执行以下方法时,动画执行完成后会回到起点:
public void startAnima2(){ TranslateAnimation ta = new TranslateAnimation(0, 500, 0, 0); ta.setDuration(2000); iv_icon.startAnimation(ta); }