private ObjectAnimator objectAnimator1;
之前一直想着用死循环让动画一直运动,一点开始就崩溃;private ObjectAnimator objectAnimator2;private ObjectAnimator objectAnimator3;private ObjectAnimator objectAnimator4;
只要是在最后一个而动画执行完之后,在事件监听的en方法里,在调用第一个动画的start();即可实现动画一直运动;
没有实现点击结束按键,结束动画
@Override public void onClick(View v) { switch (v.getId()) { case R.id.start:// ani();sports();doTranslateAnimation(pop_iv);break; case R.id.stop: // valueAnimator.end(); // objectAnimator1.end(); // objectAnimator2.end(); // objectAnimator3.end(); // objectAnimator4.end(); break; }
public void sports() {
objectAnimator1 = ObjectAnimator.ofFloat(pop_iv, "translationY", 0f, 500f); objectAnimator1.setDuration(500); objectAnimator1.addListener(new Animator.AnimatorListener() { private ObjectAnimator objectAnimator2; @Override public void onAnimationStart(Animator animation) { } @Override public void onAnimationEnd(Animator animation) { objectAnimator2 = ObjectAnimator.ofFloat(pop_iv, "translationX", 0f, 300f); objectAnimator2.setDuration(500); objectAnimator2.addListener(new Animator.AnimatorListener() { @Override public void onAnimationStart(Animator animation) { } @Override public void onAnimationEnd(Animator animation) { objectAnimator3 = ObjectAnimator.ofFloat(pop_iv, "translationY", 500f, 0f); objectAnimator3.setDuration(500); objectAnimator3.addListener(new Animator.AnimatorListener() { @Override public void onAnimationStart(Animator animation) { } @Override public void onAnimationEnd(Animator animation) { objectAnimator4 = ObjectAnimator.ofFloat(pop_iv, "translationX", 300f, 0f); objectAnimator4.setDuration(500); objectAnimator4.addListener(new Animator.AnimatorListener() { @Override public void onAnimationStart(Animator animation) { } @Override public void onAnimationEnd(Animator animation) { objectAnimator1.start(); } @Override public void onAnimationCancel(Animator animation) { objectAnimator4.end(); } @Override public void onAnimationRepeat(Animator animation) { } }); objectAnimator4.start(); } @Override public void onAnimationCancel(Animator animation) { objectAnimator3.end(); } @Override public void onAnimationRepeat(Animator animation) { } }); objectAnimator3.start(); } @Override public void onAnimationCancel(Animator animation) { objectAnimator2.end(); } @Override public void onAnimationRepeat(Animator animation) { } }); objectAnimator2.start(); } @Override public void onAnimationCancel(Animator animation) { objectAnimator1.end(); } @Override public void onAnimationRepeat(Animator animation) { } }); objectAnimator1.start();
}