动态添加视图的顺序动画
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);
}
我正在通过以下函数在 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);
}