如何开始animation结束活动

这是我的第一个应用程序,我需要在animation结束时开始新的活动。 我需要做什么? 我的代码:

package com.lineage.goddess; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.WindowManager; import android.view.animation.Animation; import android.view.animation.AnimationUtils; import android.widget.TextView; public class LineageSplashActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.splash); startAnimation(); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); } private void startAnimation() { // TODO Auto-generated method stub TextView logo1= (TextView) findViewById(R.id.TextView1); Animation fade1= AnimationUtils.loadAnimation(this, R.anim.fade_in); logo1.startAnimation(fade1); TextView logo2= (TextView) findViewById(R.id.TextView2); Animation fade2= AnimationUtils.loadAnimation(this, R.anim.fade_in); logo2.startAnimation(fade2); TextView logo3= (TextView) findViewById(R.id.TextView3); Animation fade3= AnimationUtils.loadAnimation(this, R.anim.fade_in); logo3.startAnimation(fade3); TextView logo4= (TextView) findViewById(R.id.TextView4); Animation fade4= AnimationUtils.loadAnimation(this, R.anim.fade_in2); logo4.startAnimation(fade4);} public void onAnimationEnd() { Intent i = new Intent( LineageSplashActivity.this, LineageMenuActivity.class ); LineageSplashActivity.this.startActivity( i ); ; } } 

Solutions Collecting From Web of "如何开始animation结束活动"

将AnimationListener设置为要用来启动Activity的animation。

 myAnimation.setAnimationListener(new AnimationListener() { public void onAnimationStart(Animation animation) {} public void onAnimationRepeat(Animation animation) {} public void onAnimationEnd(Animation animation) { Intent i = new Intent( LineageSplashActivity.this, LineageMenuActivity.class ); LineageSplashActivity.this.startActivity( i ); } } 

所以,你的代码将是这样的:

 package com.lineage.goddess; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.WindowManager; import android.view.animation.Animation; import android.view.animation.AnimationUtils; import android.widget.TextView; public class LineageSplashActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.splash); startAnimation(); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); } private void startAnimation() { // TODO Auto-generated method stub TextView logo1= (TextView) findViewById(R.id.TextView1); Animation fade1= AnimationUtils.loadAnimation(this, R.anim.fade_in); logo1.startAnimation(fade1); TextView logo2= (TextView) findViewById(R.id.TextView2); Animation fade2= AnimationUtils.loadAnimation(this, R.anim.fade_in); logo2.startAnimation(fade2); TextView logo3= (TextView) findViewById(R.id.TextView3); Animation fade3= AnimationUtils.loadAnimation(this, R.anim.fade_in); logo3.startAnimation(fade3); TextView logo4= (TextView) findViewById(R.id.TextView4); Animation fade4= AnimationUtils.loadAnimation(this, R.anim.fade_in2); face4.setAnimationListener(new AnimationListener() { public void onAnimationStart(Animation animation) {} public void onAnimationRepeat(Animation animation) {} public void onAnimationEnd(Animation animation) { Intent i = new Intent( LineageSplashActivity.this, LineageMenuActivity.class ); LineageSplashActivity.this.startActivity( i ); } } logo4.startAnimation(fade4); } } 

你的代码让我的眼睛stream血,所以我尽可能地修复它:

 import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.WindowManager; import android.view.animation.Animation; import android.view.animation.Animation.AnimationListener; import android.view.animation.AnimationUtils; public class LineageSplashActivity extends Activity implements AnimationListener { private static final int NUMBER_OF_ANIMATIONS = 4; private int animationFinishedCount = 0; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.splash); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); startAnimations(); } private void startAnimations() { Animation fade = AnimationUtils.loadAnimation(this, R.anim.fade_in); fade.setAnimationListener(this); findViewById(R.id.TextView1).startAnimation(fade); findViewById(R.id.TextView2).startAnimation(fade); findViewById(R.id.TextView3).startAnimation(fade); findViewById(R.id.TextView4).startAnimation(fade); } @Override public void onAnimationEnd(Animation animation) { // When all animations have finished - start the next activity if(++animationFinishedCount == NUMBER_OF_ANIMATIONS){ Intent intent = new Intent( this, LineageMenuActivity.class ); startActivity( intent ); } } @Override public void onAnimationStart(Animation animation) { // Nothing } @Override public void onAnimationRepeat(Animation animation) { // Nothing } } 

如果它不是一个错误的types,你实际上需要第四个textview的不同的animation,你可以删除计数检查,只是将animation侦听器添加到该个人animation。