2017-09-27 4 views
0
FlingAnimation flingAnimation = new FlingAnimation(pieView, FlingAnimation.ROTATION); 
     flingAnimation.addUpdateListener(new DynamicAnimation.OnAnimationUpdateListener(){ 
      @Override 
      public void onAnimationUpdate(DynamicAnimation animation, float value, float velocity) { 
       if(velocity < 50f && !animationStarted){ 
        flingAnimation.cancel(); 
        autoCenterObjectAnimator.start(); 
        animationStarted = true; 
       } 
      } 
     }); 
     flingAnimation.setFriction(0.3f); 
     flingAnimation.setStartVelocity(100); 
     flingAnimation.setStartValue(500); 
     flingAnimation.setMinValue(Integer.MIN_VALUE); 
     flingAnimation.setMaxValue(Integer.MAX_VALUE); 
     flingAnimation.start(); 

サポートライブラリ26.1.0から新しいFlingAnimationを使用しています。 円を時計回りに回転させることができません。どんな値を渡しても時計回りに回転します。Android FlingAnimation for ROTATION反対の時計方向

ビューを両方向に回転させるにはどうすればよいですか?

+0

私はあなたが常に正開始速度 – khriskooper

+0

を使用しているので、それは私が値を変更したと思うだろう。したがって、速度が負の場合、何も回転しません。正の場合は、ビューを回転させるベロシティがあります。 startValueはローテーションの開始値にすぎません。 min-とmaxValueは境界にすぎず、アニメーションは停止します。この場合、それは摩擦が飛行を止めるまで回転する。 –

答えて

0

回避策

はあなたのレイアウトで

スペース・ウィジェット

ビューのように見えないビューを作成し、FlingAnimationにそれを渡します。もちろん、何も起こりませんが、更新コールバックを使用して値を取得し、それをタグセットビューに渡して回転させることができます。値をマイナスまたはプラスにすることで、どの方向に回転するかを決めることができます。

関連する問題