Android AnimationSet 是否覆盖子动画的持续时间和插值器?
Does Android AnimationSet override duration and interpolator to child animations?
我有两种不同的动画:
AlphaAnimation alphaAnimation = new AlphaAnimation(0f,1f);
alphaAnimation.setDuration(1000);
alphaAnimation.setInterpolator(new AccelerateInterpolator());
ScaleAnimation scaleAnimation = new ScaleAnimation(1f,2f,1f,2f);
scaleAnimation.setDuration(3000);
scaleAnimation.setInterpolator(new DecelerateInterpolator());
而且我需要同步播放这个动画。
AnimationSet set = new AnimationSet(false);
set.addAnimation(alphaAnimation);
set.addAnimation(scaleAnimation);
set.setDuration(5000);
startAnimation(set);
我有一个问题。我在每个动画上设置了一些值,例如 interpolator 和 duration。当我在 AnimationSet 上设置它时,AnimationSet 会影响(覆盖) 插值器值吗?这道题还要duration值。
是的,是的。
AnimationSet 确实会覆盖 "child" 动画的持续时间值。文档中提到了这一点,我也进行了测试以确认。 setInterpolator 没有明确提及,但我也对其进行了测试,它也覆盖了所有子动画的插值。
我有两种不同的动画:
AlphaAnimation alphaAnimation = new AlphaAnimation(0f,1f);
alphaAnimation.setDuration(1000);
alphaAnimation.setInterpolator(new AccelerateInterpolator());
ScaleAnimation scaleAnimation = new ScaleAnimation(1f,2f,1f,2f);
scaleAnimation.setDuration(3000);
scaleAnimation.setInterpolator(new DecelerateInterpolator());
而且我需要同步播放这个动画。
AnimationSet set = new AnimationSet(false);
set.addAnimation(alphaAnimation);
set.addAnimation(scaleAnimation);
set.setDuration(5000);
startAnimation(set);
我有一个问题。我在每个动画上设置了一些值,例如 interpolator 和 duration。当我在 AnimationSet 上设置它时,AnimationSet 会影响(覆盖) 插值器值吗?这道题还要duration值。
是的,是的。 AnimationSet 确实会覆盖 "child" 动画的持续时间值。文档中提到了这一点,我也进行了测试以确认。 setInterpolator 没有明确提及,但我也对其进行了测试,它也覆盖了所有子动画的插值。