我正在通过以下函数动态添加我的活动中的视图。我正在使用此功能生成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>
答案 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
多数民众赞成......你准备好了!