两个动画一个接一个

时间:2012-05-06 19:09:49

标签: java android animation

我想在2张图片的活动上制作2个动画,我想用2个条件做这个:
1.我希望在活动结束后加载到页面时启动动画,所以不要将动画代码放在onCreate下,而是将它放在onResume下面就可以了吗?还有更好的方法吗?

2.我希望第二个动画只在第一个动画结束后开始...

由于

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

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

答案 2 :(得分: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);
            }
        };
    }