通过Animation监听事件实现连续动画
创建一个简单的xml文件,里面有一个< imageview>即可
MainActivity.java:
public class MainActivity extends Activity {
ImageView iv;
int index = 0;
RotateAnimation rotate_animation;
TranslateAnimation translate_animation1, translate_animation2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
iv = (ImageView) findViewById(R.id.iv);
iv.setOnClickListener(new TranslateButtonListener());
}
private void iv_setlocal(int value) {
iv.setPadding(iv.getPaddingLeft() + value, iv.getPaddingTop() + value,
iv.getPaddingRight(), iv.getPaddingBottom());
}
private class TranslateButtonListener implements OnClickListener {
public void onClick(View v) {
translate_animation1 = new TranslateAnimation(Animation.ABSOLUTE,
0, Animation.ABSOLUTE, 100, Animation.ABSOLUTE, 0,
Animation.ABSOLUTE, 100);
translate_animation1.setDuration(1000);
translate_animation1.setFillAfter(true);
iv.startAnimation(translate_animation1);
translate_animation1.setAnimationListener(animationListener);
}
AnimationListener animationListener = new AnimationListener() {
@Override
public void onAnimationStart(Animation arg0) {
}
@Override
public void onAnimationRepeat(Animation arg0) {
}
@Override
public void onAnimationEnd(Animation animation) {
switch (index) {
case 0: {
index++;
iv_setlocal(100);
rotate_animation = new RotateAnimation(0, 90,
Animation.ABSOLUTE, 120, Animation.ABSOLUTE, 120);
rotate_animation.setDuration(1000);
rotate_animation.setFillAfter(true);
iv.startAnimation(rotate_animation);
rotate_animation.setAnimationListener(animationListener);
}
break;
case 1:
index++;
iv.setImageResource(R.drawable.ic_left);
translate_animation2 = new TranslateAnimation(
Animation.ABSOLUTE, 0, Animation.ABSOLUTE, 320,
Animation.ABSOLUTE, 0, Animation.ABSOLUTE, 0);
translate_animation2.setDuration(2000);
translate_animation2.setFillAfter(true);
iv.startAnimation(translate_animation2);
translate_animation2
.setAnimationListener(animationListener);
break;
}
}
};
}
}