在 android 播放动画

Playing with animation in android

我正在学习 android 动画并想玩它。 我已经创建了动画,但我希望动画之间应该有 delay/wait。

这是代码。

new AnimationUtils();
Animation anim = AnimationUtils.loadAnimation(this, R.anim.abc_slide_in_bottom);
findViewById(R.id.app_logo).startAnimation(anim);
findViewById(R.id.addTopic).startAnimation(anim);
findViewById(R.id.addDescription).startAnimation(anim);
findViewById(R.id.addBtn).startAnimation(anim);

现在我想要在 findViewById(R.id.app_logo).startAnimation(anim); 之后等待动画完成。一旦完成 findViewById(R.id.addTopic).startAnimation(anim); 应该开始等等。

如果有任何人可以指导我如何实现它,我将不胜感激

谢谢。

这是满足您需求的简单解决方案:

    final Animation anim0 = AnimationUtils.loadAnimation(this, R.anim.abc_slide_in_bottom);
    final Animation anim1 = AnimationUtils.loadAnimation(this, R.anim.abc_slide_in_bottom);
    final Animation anim2 = AnimationUtils.loadAnimation(this, R.anim.abc_slide_in_bottom);
    final Animation anim3 = AnimationUtils.loadAnimation(this, R.anim.abc_slide_in_bottom);
    Animation.AnimationListener animationListener = new Animation.AnimationListener() {
        int count = 0;
        @Override
        public void onAnimationStart(Animation animation) {
        }
        @Override
        public void onAnimationEnd(Animation animation) {
            switch (count){
                case 0:
                    findViewById(R.id.addTopic).setVisibility(View.VISIBLE);
                    findViewById(R.id.addTopic).startAnimation(anim1);
                    break;
                case 1:
                    findViewById(R.id.addDescription).setVisibility(View.VISIBLE);
                    findViewById(R.id.addDescription).startAnimation(anim2);
                    break;
                case 2:
                    findViewById(R.id.addBtn).setVisibility(View.VISIBLE);
                    findViewById(R.id.addBtn).startAnimation(anim3);
                    break;
            }
            count++;

        }
        @Override
        public void onAnimationRepeat(Animation animation) {
        }
    };
    anim1.setAnimationListener(animationListener);
    anim2.setAnimationListener(animationListener);
    anim3.setAnimationListener(animationListener);
    findViewById(R.id.app_logo).startAnimation(anim0);
    findViewById(R.id.addTopic).setVisibility(View.GONE);
    findViewById(R.id.addDescription).setVisibility(View.GONE);
    findViewById(R.id.addBtn).setVisibility(View.GONE);

这个link会解决你所有的问题

https://github.com/codepath/android_guides/wiki/Animations