Как начать работу по завершению анимации

Это мое первое приложение, и мне нужно начать новую работу, когда анимация заканчивается. что мне нужно делать? Мой код:

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 "Как начать работу по завершению анимации"

Установите AnimationListener для анимации, которую вы хотите использовать, чтобы начать свою деятельность.

 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); } } 

У вашего кода появилось кровоизлияние в глаз, поэтому я исправил его настолько, насколько мог:

 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 } } 

И если это не неправильный тип, и вам действительно нужна другая анимация для 4-го текста, вы можете удалить проверку счетчика и просто добавить слушателя анимации к этой отдельной анимации.