【发布时间】:2013-02-06 19:18:59
【问题描述】:
在我的 Android 应用程序中,我想在另一个 View 动画完成后在一个 View 上启动一个动画。所以我使用了AnimationListener并使用了override方法onAnimationEnd()。 但问题是当第一个视图的动画完成时,第一个和第二个视图都开始动画。这意味着第一个视图与第二个动画重复它的动画。
final Animation anim = AnimationUtils.loadAnimation(Home.this,R.anim.myanimation);
anim.setAnimationListener(new AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
// TODO Auto-generated method stub
}
@Override
public void onAnimationEnd(Animation animation) {
image_2.startAnimation(anim);
}
@Override
public void onAnimationRepeat(Animation animation) {
// TODO Auto-generated method stub
}});
image_1.startAnimation(anim);
我希望 image_2 的动画在 image_1 的动画之后开始。但是 image_1 不会重复它的动画。动画将按顺序发生。该怎么做?
我的动画代码如下:
<set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator" android:fillEnabled="true" android:fillAfter="true" android:startOffset="5000">
<scale android:fromXScale="1.0" android:toXScale="0.0" android:fromYScale="1.0" android:toYScale="1.0" android:pivotX="100%" android:duration="8000" />
</set>
【问题讨论】:
-
startAnimation 将动画设置为视图并启动它。 image_2.startAnimation 将动画设置为 image_2 并为 1 和 2 启动它。在启动第二个动画之前使用 image_1.setAnimation(null)