7

現在の位置から画面の中央にスライドしてから反転するアニメーションを作成しようとしています。各可動コンポーネントは適切に機能していますが、startoffsetを使用してすべてをセットに入れると、そのオフセットが終了するまでアニメーションは開始されず、すべてのアニメーションが一度に実行されます。これに関するどんな助けも大いに感謝されます。

slide_down.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
    <!-- Slide down -->
    <translate 
        android:fromYDelta="0%" 
        android:toYDelta="100%"
        android:duration="1000"/>

    <!-- Set alpha to fully opaque -->
    <alpha 
        android:fromAlpha="0.8"
        android:toAlpha="1.0"
        android:duration="1000" />

    <!-- Flip image once it's in the center -->
    <!-- ***** HERE IS THE only offset I set ****** -->
    <scale
        android:fromXScale="0.0"
        android:toXScale="1.0"
        android:pivotX="50%"
        android:fromYScale="1.0"
        android:toYScale="1.0"
        android:startOffset="1000"
        android:duration="200" />
</set>

市外局番

Animation anim = AnimationUtils.loadAnimation(getActivity(), slideDirection);
        anim.setAnimationListener(new AnimationListener() {
            public void onAnimationStart(Animation animation) {             
            }

            public void onAnimationRepeat(Animation animation) {                
            }

            public void onAnimationEnd(Animation animation) {
                mCallBack.categorySelected(view.getId());
            }
        });

        view.clearAnimation();
        view.startAnimation(anim);

ありがとう、Dman

4

1 に答える 1

2

アニメーション オフセットは、常にアニメーションの開始から計算されます。アニメーションを 1 つずつ再生する場合は、オフセットを自分で計算する必要があります。

以下は、変換を 1 秒間再生し、次にアルファをさらに 1 秒間再生し、続いて 200 ミリ秒のスケールを再生します -

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
    <!-- Slide down -->
    <translate 
        android:fromYDelta="0%" 
        android:toYDelta="100%"
        android:duration="1000"/>

    <!-- Set alpha to fully opaque -->
    <alpha 
        android:fromAlpha="0.8"
        android:toAlpha="1.0"
        android:startOffset="1000"
        android:duration="1000" />

    <!-- Flip image once it's in the center -->
    <!-- ***** HERE IS THE only offset I set ****** -->
    <scale
        android:fromXScale="0.0"
        android:toXScale="1.0"
        android:pivotX="50%"
        android:fromYScale="1.0"
        android:toYScale="1.0"
        android:startOffset="2000"
        android:duration="200" />
</set>
于 2012-12-12T18:41:06.627 に答える