2012-05-06 58 views
3

我想在2个图像的活动上制作2个动画,我想用2个条件做:
1.我想在活动完成后开始动画以加载到页面,所以而不是把动画代码放在onCreate下,我把它放在onResume下,那可以吗?有更好的方法来做到这一点?

2.我希望第一个动画结束后的第二个动画才会开始...一个接一个的两个动画

感谢

回答

1

你要使用Animation.AnimationListner您可以设置一个你的第一个动画,将得到动画完成时的回调。在该回调中,您可以添加将启动第二个动画的代码。

+0

好的我会尝试,但关于我的第一个问题,是否可以将动画代码放在onResume下? – choop

+0

当然,只要你确定你希望它每次都在onResume被调用时发生。和(我提到这是一个用户而不是程序员)不会使动画总持续时间很长。如果持续时间太长,我觉得我不得不等待使用它,那么它开始困扰着我。 – FoamyGuy

+0

谢谢,解决了这个问题! – choop

1

根据您编码的API级别,您可以使用AnimationSetAnimatorSet。另外,如果您正在扩展View或其中一个子类,则可以覆盖View.onAnimationStart()View.onAnimationFinish()。或者使用Tim提到的听众。

+0

感谢您的信息... – choop

0
 public class SplashActivity extends Activity{ 

     Animation FadeInanimation, FadeOutanimation; 
     ImageView img; 

     @Override 
      public void onCreate(Bundle savedInstanceState) { 
       super.onCreate(savedInstanceState); 
       img= (ImageView) findViewById(R.id.img); 
       //Your Code Block.... 

       FadeInanimation = AnimationUtils.loadAnimation(this,R.anim.image_fadein); 
       //FadeInanimation.setRepeatCount(Animation.INFINITE); 
       //FadeInanimation.setRepeatMode(Animation.RESTART); 
       FadeInanimation.setAnimationListener(FadeInAnimationListener); 

       FadeOutanimation = AnimationUtils.loadAnimation(this,R.anim.image_fadeout); 
       //FadeOutanimation.setRepeatCount(Animation.INFINITE); 
       //FadeOutanimation.setRepeatMode(Animation.RESTART); 
       FadeOutanimation.setAnimationListener(fadeOutAnimationListener); 

       img.startAnimation(FadeInanimation); 
      } 
    AnimationListener FadeInAnimationListener = new AnimationListener() { 

      @Override 
      public void onAnimationStart(Animation animation) { 
      } 

      @Override 
      public void onAnimationRepeat(Animation animation) { 

      } 

      @Override 
      public void onAnimationEnd(Animation animation) { 
       plane.startAnimation(FadeOutanimation); 
      } 
     }; 
    } 
+1

你可以把动画onResume()它的工作。每当你的应用程序从onResume开始,那么你的动画就开始了。如果你把你的动画放在onCreate方法中,那么当你的应用程序启动的时候,它会首次调用你的应用程序。在暂停模式,然后你回到你的应用程序。当时调用Resume方法您的动画未启动动画写入onCreate方法 –

+0

感谢您的信息.. – choop