3

我想为 2 个图像在活动上制作 2 个动画,并且我想在 2 个条件下做到这一点:
1. 我想在活动完成加载到页面后启动动画,所以onCreate我没有将动画代码放在下面onResume那样可以么?有更好的方法吗?

2.我希望第二个动画只有在第一个动画完成后才开始......

谢谢

4

3 回答 3

1

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

于 2012-05-06T19:22:58.430 回答
1

根据您编写的 API 级别,您可以使用AnimationSetAnimatorSet. 此外,如果您正在扩展View或其子类之一,您可以覆盖View.onAnimationStart()and View.onAnimationFinish()。或者使用蒂姆提到的监听器。

于 2012-05-06T19:25:48.623 回答
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);
            }
        };
    }
于 2012-05-06T19:25:58.017 回答