【问题标题】:Chain animatorSet android animationChain animatorSet android 动画
【发布时间】:2015-02-18 23:45:15
【问题描述】:

Android 新手我想做一些流畅的动画。

我在设备上有一个包含效果的文件,每个效果都是一个动画。该文件告诉我何时播放效果以及效果持续时间。

问题是我无法动态链接 animatorSet:

AnimatorSet mainAnimatorSet(); 
_listAllAnimator // Will contain every AnimatorSet(); 
for (int i = 0; i < listEffects; i++)
{
// Build animatorSet 
   ObjectAnimaTor1... 
   ObjectAnimaTor2... 
   AnimatorSet animatorSet = new AnimatorSet(); 
   animatorSet.play(ObjectAnimaTor1).with(ObjectAnimaTor2); 
   _listAllAnimator.add(animatorSet);

}

现在我怎么能从我的 AnimatorSet() 列表中获得 mainAnimatorSet();每个动画都从最后一个动画的末尾开始。

for (int i = 0; i < _listAllAnimator.size(); i++)
{
if (i==0) {
  mainAnimatorSet.play(animSet.get(i));
}
else {
    mainAnimatorSet.play(animSet.get(i)).after(animSet.get(i-1)); 
}
}
mainAnimatorSet.start(); 

这不起作用。 谢谢

【问题讨论】:

  • 输出是什么,你得到
  • 我自己也有类似的问题。我在列表中有布局,每个布局都设置了一个 objectanimator。只有第一个布局在 animatorset 中进行动画处理?

标签: android animation android-animation objectanimator


【解决方案1】:

我真的不明白你,但无论如何我都会发布答案..

1 假设您在 arraylist 或列表中有动画,并且您希望按照 start-after-previous-end 的顺序播放这些动画

AnimatorSet s = new AnimatorSet();
s.playSequentially(List<Animator> items); // items is your arraylist of animations

2 假设您在数组列表或列表中有动画,并且您想同时播放这些动画

AnimatorSet s = new AnimatorSet();
s.playTogether(List<Animator> items); // items is your arraylist of animations

【讨论】:

    猜你喜欢
    • 2015-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-19
    • 2014-11-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多