2013-01-16 83 views
0

我已經設置了圖像按鈕的動畫。我期望它做的是淡出,然後開始下一個活動。Android:開始下一個活動之前未完成動畫

這不是發生了什麼事情。

它正在開始下一個活動,然後按'後退'時,動畫仍然是'跑步',並完成淡出。我嘗試了以下各種組合:在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); 

} 
+0

我給你的權利,它不適合後退按鈕按下的工作?但是,如果你只是點擊圖像按鈕,讓它運行,它的工作? –

+0

不 - 按下圖像按鈕時不起作用,但按下後退按鈕時:淡入淡出。實質上,動畫即將開始,但在下一個活動開始之前不會完成,即使在使用線程時也是如此。 – LMVogel

回答

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

完美!謝謝!!! – LMVogel

0

您應該使用AnimationListener描述hereonAnimationEnd啓動Activity。你可以使用這樣的:animationFadeOut.setAnimationListener(listener)

+0

謝謝 - 我知道必須有某種傾聽者! – LMVogel

相關問題