用于动态添加视图的Sequencial动画

时间:2017-05-05 05:09:39

标签: android dynamic android-animation

我正在通过以下函数动态添加我的活动中的视图。我正在使用此功能生成5个视图。这工作正常。我的问题是当我将动画应用于视图时,所有视图都会被动画化。我想为第一个生成的视图设置动画,然后是第二个,依此类推。现在,在活动开始时,所有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>

2 个答案:

答案 0 :(得分:1)

使用此功能可以帮助您

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);
 }

答案 1 :(得分:0)

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

这是ParentLayout我在哪里动态添加多个视图;

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%" />

ShowCutOffPoint

多数民众赞成......你准备好了!