我試圖將兩個動畫「鏈接」在一起,所以當一個完成時,另一個開始。除了一個問題,這是行得通的。第一個動畫完成後,它會回到原始位置。我將填充設置爲true。我還有什麼遺漏?Android鏈接動畫
這是我使用的代碼。請注意,這是在擴展LinearLayout的類中。
// FIRST ANIMATION
mAnimation = new TranslateAnimation(0, PANEL_END_X, 0, 0);
mAnimation.setDuration(PANEL_TRANSITION_TIME);
mAnimation.setFillAfter(true);
mAnimation.setAnimationListener(new Animation.AnimationListener() {
public void onAnimationEnd(Animation animation) {
// FIRST ANIMATION COMPLETE, CALL THE SECOND ANIMATION
startAnimation(mAlphaAnimation);
}
});
// SECOND ANIMATION
mAlphaAnimation = new AlphaAnimation(1.0f, 0.0f);
mAlphaAnimation.setDuration(PANEL_ALPHA_TRANSITION_TIME);
mAlphaAnimation.setFillAfter(true);
解決方案:
我能得到這個工作讓我滿意的,唯一的方法是使用一個AnimationSet
,但設置的起始偏移量第二的動畫,開始偏移第一動畫+持續時間,加上一點填充。在我的情況下,他們不必完全確切。
我嘗試使用CommonsWare建議的各種值進行播放,但我總是會得到某種類型的「捕捉」效果,其中值會在採用新值之前恢復爲其原始值。
AnimationSet.Builder最終成爲我所需要的:http://developer.android.com/reference/android/animation/AnimatorSet.Builder.html。 – Steve 2012-04-11 23:41:38