100% から 0% にスケーリングし、不透明から透明 ( SET 1 ) にフェードしながら画像を回転させ、アニメーションを反転 ( SET 2 ) するImageViewのアニメーションを作成したいと思います。2 つのアニメーション セットは 1 つずつ取得すると機能しますが、それらを一緒にすると何も見えません。アニメーション セット 2 の開始値がすぐに適用されるためです。その子の startOffset がアニメーション セットの後に開始するように設定されていても1が完成しました。開始前にアニメーション セット 2 の開始値を適用しないように、 fadeAfterとfadeBeforeを使用する必要があることを理解したと思いますが、うまくいきませんでした。私もfadeAfterを試してみましたSET 1でtrueに設定し、SET 2を削除して、それが機能するかどうかを確認します。つまり、SET 1の変換が終了後も持続するかどうかを確認しますが、再び機能しませんでした..だから、私が望む結果を生み出すことは可能ですか?次のアニメーション。おそらく、fadeAfter、fadeBefore、およびfillEnabled属性を使用していますか? ImageViewビューで動作する必要がありますか?
アニメーション XML
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false" >
<!-- SET 1 -->
<set
android:interpolator="@android:anim/decelerate_interpolator"
android:shareInterpolator="true" >
<alpha android:fromAlpha="1"
android:toAlpha="0"
android:duration="1000"
android:startOffset="500"/>
<rotate
android:duration="1000"
android:fromDegrees="0"
android:pivotX="50%"
android:pivotY="50%"
android:startOffset="500"
android:toDegrees="720" />
<scale
android:duration="1000"
android:fromXScale="100%"
android:fromYScale="100%"
android:pivotX="50%"
android:pivotY="50%"
android:startOffset="500"
android:toXScale="0%"
android:toYScale="0%" />
</set>
<!-- SET 2 -->
<set
android:interpolator="@android:anim/accelerate_interpolator"
android:shareInterpolator="true">
<alpha android:fromAlpha="0"
android:toAlpha="1"
android:duration="1000"
android:startOffset="1500"/>
<rotate
android:duration="1000"
android:fromDegrees="0"
android:pivotX="50%"
android:pivotY="50%"
android:toDegrees="720"
android:startOffset="1500" />
<scale
android:duration="1000"
android:fromXScale="0%"
android:fromYScale="0%"
android:pivotX="50%"
android:pivotY="50%"
android:toXScale="100%"
android:toYScale="100%"
android:startOffset="1500" />
</set>
</set>
Java コードでのアニメーションの開始
ImageView iv = (ImageView) findViewById(R.id.image_view);
Animation animation = AnimationUtils.loadAnimation(this, R.anim.test_animation);
iv.startAnimation(animation);
アニメーションリピートでテスト
SET 2 を削除してstartAnimationの前に次のコードを追加しようとしましたが、アニメーションは逆の順序で繰り返されません (RESTART と X の繰り返しサイクルも指定できますが、機能しません)。アイデアや提案はありますか?!
animation.setRepeatCount(1);
animation.setRepeatMode(Animation.REVERSE);