2012-12-12 21 views
5

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

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

答えて

2

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

<?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> 
+0

応答してくれてありがとう -

次の1秒間変換再生され、別のものその後、アルファは、第二の200msの間規模続きます。私が探しているものは、イメージが中心に移動して完全に不透明になったらフリップアニメーションを開始して、平行移動とアルファを同時に実行することではありません – DMCApps

関連する問題