1
我試圖連續播放幾個動畫。這些動畫將是簡單的變換(移動圖像瀏覽一定距離)或更復雜的幀動畫。如何使用xml中定義的動畫加載AnimatorSet
在研究這個問題時,AnimatorSet似乎是一個很好的解決方案。它允許您創建一個要播放的動畫隊列,然後以特定的順序執行它們。
// defining an example animation
Animator anim = ObjectAnimator.ofFloat(v, "alpha", 0f)
.setDuration(100);
AnimatorSet set = new AnimatorSet();
// dictating the order in which the animations will be played
set.playSequentially(anim, skewAnim, wobbleAnim);
set.start();
的問題是,據我所知,你不能定義Animator對象,放在AnimatorSet從在XML文件中定義的動畫。
此外,AnimationSet(注意不同的名稱)只允許您一次播放多個動畫,所以這個類不適合我的目的。
有沒有人知道從項目中的xml對象定義Animator對象的方法?另外,是否還有另一種方法可以完全演奏一系列動畫?
UPDATE:
AnimatorSet set = new AnimatorSet();
Animator anim1 = AnimatorInflater.loadAnimator(getApplicationContext(), R.animator.sample);
anim1.setTarget(myView1);
Animator anim2 = AnimatorInflater.loadAnimator(getApplicationContext(), R.animator.sample);
anim2.setTarget(myView2);
anim1.setDuration(3000);
anim2.setDuration(3000);
anim1.setInterpolator(new CycleInterpolator(5));
anim2.setInterpolator(new CycleInterpolator(5));
set.playSequentially(anim1,anim2);
set.start();
謝謝Ravinder。你有什麼想法,爲什麼我的動畫師不會按照預期播放動畫? (請參閱上面的編輯) – Dportology
如果您將多個動畫器對象提供給單個xml,並按照上面提到的方式使用它創建AnimatorSet,那麼將根據xml文件中的排序規範來播放這些動畫。但從上面更新我可以看到,你不想在不同的視圖上播放順序動畫,因爲你需要動畫監聽器,檢查我的答案 –