AnimationListener的使用

 

在Button的onClickListener里如果写成下面这样,那么Intent和animation是同时执行的,看不到动画效果

mClickBtn.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub

				Animation hang_fall = AnimationUtils.loadAnimation(
						MainActivity.this, R.anim.hang_fall);
				v.startAnimation(hang_fall);
				Intent i = new Intent(MainActivity.this, NextActivity.class);
				MainActivity.this.startActivity(i);
			}
		});

所以应该加入一个动画监听器AnimationListener:

final ImageView imageView = (ImageView) this.findViewById(R.id.photo);

		imageView.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {

				Animation hang_fall = AnimationUtils.loadAnimation(
						MainActivity.this, R.anim.hang_fall);
				hang_fall
						.setAnimationListener(new Animation.AnimationListener() {
							public void onAnimationEnd(Animation animation) {
								Intent i = new Intent(MainActivity.this,
										NextActivity.class);
								MainActivity.this.startActivity(i);
							}

							public void onAnimationRepeat(Animation animation) {
								// Do nothing!
							}

							public void onAnimationStart(Animation animation) {
								// Do nothing!
							}
						});
				v.startAnimation(hang_fall);
			}
		});

当然activity之间的跳转动画还可以直接使用

overridePendingTransition(enterAnim, exitAnim);

原文参见这里

你可能感兴趣的:(Android,Java)