动态添加视图的顺序动画

Sequencial animation for dynamically added views

我正在通过以下函数在 activity 中动态添加视图。我正在使用此功能生成 5 个视图。这工作正常。我的问题是,当我将动画应用到视图时,所有视图都被动画化了。我想对第一个生成的视图进行动画处理,然后对第二个进行动画处理,依此类推。现在在 activity 开始时,所有 5 个视图都逐渐淡入。我已经尝试过 setStartOffset,但它不起作用。我该怎么办?

动态添加视图函数(MainActivity.java):

public void addViewInActivity() {
    container.addView(addView);

    Animation animation = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.fade_in);

    final long startOffset = 1000;
    animation.setStartOffset(startOffset);

    addView.startAnimation(animation);
}

fade_in.xml

<?xml version="1.0" encoding="UTF-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <alpha
        android:fromAlpha="0.0"
        android:toAlpha="1.0"
        android:interpolator="@android:anim/accelerate_interpolator"
        android:duration="500"
        android:repeatCount="0" />
</set>

您可以在 容器 上应用动画。考虑以下示例;

这是我动态添加多个视图的 ParentLayout;

<LinearLayout
 android:id="@+id/layoutStatus"
 android:layout_width="fill_parent"
 android:layout_height="wrap_content"
 android:layoutAnimation="@anim/list_layout_animation"
 android:orientation="horizontal"
 android:padding="10.0dip" />

以下是list_layout_animation

<?xml version="1.0" encoding="utf-8"?>
<layoutAnimation xmlns:android="http://schemas.android.com/apk/res/android"
    android:animation="@anim/slide_in_right"
    android:delay="0.5" />

而且,这是 slide_in_right

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="400"
    android:fillAfter="true"
    android:fromXDelta="-100.0%"
    android:toXDelta="0.0%" />

就是这样..你准备好了!

使用这个可能对你有帮助

private long startOffset = 1000;

public void addViewInActivity() {
  container.addView(addView);

  Animation animation = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.fade_in);
  startOffset += 500;
  animation.setStartOffset(startOffset);

  addView.startAnimation(animation);
 }