2017-09-27 2 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(); 

J'utilise le nouveau FlingAnimation de la bibliothèque de support 26.1.0. Je ne suis pas capable de faire tourner le cercle dans le sens des aiguilles d'une montre. Il tourne juste dans le sens des aiguilles d'une montre, peu importe les valeurs que je passe.Android FlingAnimation pour ROTATION dans le sens de l'horloge opposé

Comment puis-je faire pivoter la vue dans les deux directions?

+0

Je pense que c'était parce que vous utilisez toujours une vitesse de démarrage positif – khriskooper

+0

j'ai changé la valeur. Donc quand la vitesse est négative, rien ne tourne. Si c'est positif, il a une vitesse pour faire pivoter la vue. StartValue est juste la valeur de départ de la rotation. min- et maxValue sont juste les limites, où l'animation sera arrêtée. Dans ce cas, il tourne jusqu'à ce que le frottement arrête le lancer. –

Répondre

0

Solution:

Créer une vue invisible comme le

widget Espace

vue dans votre mise en page et passer à la FlingAnimation. Rien ne se produira bien sûr, mais grâce au rappel de mise à jour, vous pouvez obtenir les valeurs et les transmettre à votre vue de taget et laisser la tourner. En faisant les valeurs négatives ou positives, vous décidez dans quelle direction la rotation sera faite.