1

私のAndroidアプリでは、別のビューアニメーションが終了した後、ビューでアニメーションを開始したいと思います。そこで、AnimationListenerを使用し、オーバーライドメソッドonAnimationEnd()を使用しました。ただし、問題は、1番目のビューのアニメーションが終了すると、1番目と2番目のビューの両方がアニメーションを開始することです。つまり、1番目のビューは2番目のアニメーションでアニメーションを繰り返します。

    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_1のアニメーションの後にimage_2のアニメーションを開始したい。ただし、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>
4

1 に答える 1

1

これは、2つのリスナーを実装する必要があるためです。image2アニメーションを最初に呼び出すと、アニメーションが発生し、アニメーションリスナーの終了後にアニメーションが再び発生するため、アニメーションが2回実行されます。したがって、2つのリスナーと2つの別々のアニメーションを2つの画像ビューに設定すると、問題が解決する場合があります。 。

于 2013-02-06T11:13:39.637 に答える