最近在使用RippleBackground这个开源代码,做水波纹的动画效果,里面有一部分代码是这样的:
animatorSet = new AnimatorSet();
animatorSet.setInterpolator(new AccelerateDecelerateInterpolator());
animatorSet.setDuration(rippleDurationTime);
animatorList = new ArrayList<Animator>();
for (int i = 0; i < rippleAmount; i++) {
RippleView rippleView = new RippleView(getContext());
addView(rippleView, rippleParams);
rippleViewList.add(rippleView);
final ObjectAnimator scaleXAnimator = ObjectAnimator.ofFloat(rippleView, "ScaleX", 1.0f, rippleScale);
scaleXAnimator.setRepeatCount(ObjectAnimator.INFINITE);
scaleXAnimator.setRepeatMode(ObjectAnimator.RESTART);
scaleXAnimator.setStartDelay(i * rippleDelay);
animatorList.add(scaleXAnimator);
final ObjectAnimator scaleYAnimator = ObjectAnimator.ofFloat(rippleView, "ScaleY", 1.0f, rippleScale);

本文探讨了在Android 4.0.x版本中使用AnimatorSet时遇到的setDuration方法失效的问题。通过分析RippleBackground开源库的水波纹动画代码,揭示了可能的原因和解决方案。

6009

被折叠的 条评论
为什么被折叠?



