所以,
我试图得到的是5个视图使用椭圆形状绘制,动画。它是一个缩放的圆圈。动画本身很好,在单个视图上播放时看起来很好。但是当我尝试在这5个视图上错开这个动画时,它需要1-2个循环,直到它不同步。
在我的片段中,我做了:
final Animation animation1 = AnimationUtils.loadAnimation(getActivity(), R.anim.anim_indicator);
final Animation animation2 = AnimationUtils.loadAnimation(getActivity(), R.anim.anim_indicator);
final Animation animation3 = AnimationUtils.loadAnimation(getActivity(), R.anim.anim_indicator);
final Animation animation4 = AnimationUtils.loadAnimation(getActivity(), R.anim.anim_indicator);
final Animation animation5 = AnimationUtils.loadAnimation(getActivity(), R.anim.anim_indicator);
// 20 ms delay
final int timeOffset = getResources().getInteger(R.integer.connection_indicator_time_offset);
//
animation1.setStartOffset(0);
animation2.setStartOffset(timeOffset);
animation3.setStartOffset(timeOffset * 2);
animation4.setStartOffset(timeOffset * 3);
animation5.setStartOffset(timeOffset * 4);
//
indicator1.startAnimation(animation1);
indicator2.startAnimation(animation2);
indicator3.startAnimation(animation3);
indicator4.startAnimation(animation4);
indicator5.startAnimation(animation5);
所以我在20ms的值中配置了一些延迟,用于将初始时间移动一点以获得我想要存档的视觉效果。动画需要1000毫秒才能播放:
<set
android:interpolator="@android:interpolator/accelerate_decelerate"
android:repeatCount="infinite">
<alpha
android:duration="@integer/connection_indicator_animation_speed"
android:fromAlpha="0.7"
android:repeatCount="infinite"
android:repeatMode="reverse"
android:toAlpha="1.0" />
<scale xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="@integer/connection_indicator_animation_speed"
android:fillBefore="true"
android:fromXScale="0.5"
android:fromYScale="0.5"
android:pivotX="50%"
android:pivotY="50%"
android:repeatCount="infinite"
android:repeatMode="reverse"
android:toXScale="1"
android:toYScale="1" />
</set>
那么,问题是我如何为一些视图制作动画并确保动画在一段时间后保持同步?
似乎所有人都必须进行setStartOffset调用,当设置为0时一切都很好,但这不是我想要的。
感谢, Kitesurfer