为什么我的视图会同时启动动画?

时间:2015-09-11 05:01:41

标签: android animation

我希望我的观点逐渐显现出来。所以我使用Timer来延迟视图出现的时间。但它不起作用。奇怪的是,这些观点同时出现! 这是我的代码。

public static void startAnimations(final View... views) {
        //assume 720
        int screenWidth = 720;
        final TranslateAnimation translateAnimation = new TranslateAnimation(-screenWidth / 2, 0, 0, 0);
        final AlphaAnimation alphaAnimation = new AlphaAnimation(0.5f, 1);
        translateAnimation.setDuration(800);
        alphaAnimation.setDuration(800);

        mViewIndex = 0;
        final Timer timer = new Timer();
        final Handler handler = new Handler() {
            @Override
            public void handleMessage(Message msg) {
                if (mViewIndex >= views.length) {
                    timer.cancel();
                    mViewIndex = 0;
                    return;
                }
                View view = views[mViewIndex];
                final AnimationSet animationSet = new AnimationSet(true);
                animationSet.setDuration(800);
                animationSet.setInterpolator(new AccelerateInterpolator());
                animationSet.addAnimation(alphaAnimation);
                animationSet.addAnimation(translateAnimation);
                view.startAnimation(animationSet);
                mViewIndex++;
            }
        };

        timer.schedule(new TimerTask() {
            @Override
            public void run() {
                handler.sendEmptyMessage(0x11);
            }
        }, 0, 300);
    }

1 个答案:

答案 0 :(得分:1)

尝试使用setAnimationListener,因为您将拥有以下@override方法

@Override
public void onAnimationEnd(Animation animation) {

}

所以你可以显示下一个动画