在我的Android应用中,我希望在另一个View动画完成后在View上启动动画。所以我使用了AnimationListener并使用了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>
答案 0 :(得分:1)
这是因为您需要实现两个侦听器。当您最初调用image2动画时,动画会发生,并且在动画侦听器结束后动画再次发生,因此动画将会发生两次。因此,为两个图像视图设置两个侦听器和两个单独的动画可能会解决您的问题。