Android:动画在开始下一个活动之前没有完成

时间:2013-01-16 12:41:25

标签: android animation

我为图像按钮设置了动画。我期望它做的是淡出,然后开始下一个活动。

这不是正在发生的事情。

它开始下一个活动,然后当按下“后退”时,动画仍在“运行”,并完成淡出。我尝试了各种组合:在XML中设置较长时间的动画,将动画放入线程,使用线程进入睡眠状态,并将动画放入睡眠线程......我没有找到获胜组合!仍然没有在下一个活动开始之前完成动画。

感谢任何帮助!

用于淡出的XML:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/linear_interpolator">
<alpha
  android:fromAlpha="1.0"
  android:toAlpha="0.1"
  android:duration="1000"
  />
</set>

android中的代码:(对于imageButton的onClick)

public void onClick(View v) {
            Intent intent = new Intent(Current.this, Next.class);
            v.startAnimation(animationFadeOut);
            try {

                Thread.sleep(1200);
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

            startActivity(intent);

}

2 个答案:

答案 0 :(得分:2)

您也可以尝试使用AnimationListener,如下所示:

animationFadeOut.setAnimationListener(new AnimationListener() {

    @Override
    public void onAnimationStart(Animation animation) {
        // TODO Auto-generated method stub

    }

    @Override
    public void onAnimationRepeat(Animation animation) {
        // TODO Auto-generated method stub

    }

    @Override
    public void onAnimationEnd(Animation animation) {
        // TODO Auto-generated method stub

        startActivity(intent);

    }
});

答案 1 :(得分:0)

您应该使用AnimationListener描述的hereonAnimationEnd Activity开始animationFadeOut.setAnimationListener(listener)。您可以这样使用:{{1}}