2016-06-13 5 views
2

Ist es möglich, die Animation in umgekehrter Reihenfolge für AnimatedVectorDrawable abzuspielen?Umgekehrte Animation in AnimatedVectorDrawable

+1

Ich glaube, Sie brauchen, um Ihre eigenen Reverse Animation machen Ich glaube nicht, Android eine hat. Funktion, mit der Sie es tun können – Stardust

+0

@Stardust Sie haben Recht Ich habe zwei separate Animationen implementiert –

Antwort

0

Wenn Sie AnimatedVectorDrawable Quellcode schauen, werden Sie die Methode

/** 
* Reverses ongoing animations or starts pending animations in reverse. 
* <p> 
* NOTE: Only works if all animations support reverse. Otherwise, this will 
* do nothing. 
* @hide 
*/ 
public void reverse() 

finden Sie können diese Methode aufrufen, mit Reflexion. Zum Beispiel wie folgt aus:

private boolean mAnimationReversed = false; 

    public void startAnimation() { 
     if(mAnimationReversed) { 
      try { 
       Method reverse = mDrawable.getClass().getMethod("reverse"); 
       reverse.invoke(mDrawable); 
      } catch (IllegalAccessException| NoSuchMethodException | InvocationTargetException e) { 
       e.printStackTrace(); 
      } 
     } 
     mDrawable.start(); 
     mAnimationReversed = !mAnimationReversed; 
    } 

Nur verifiziert: Die Arbeiten an API21, funktioniert aber nicht auf API24 :-(

+2

Die 'reverse();' Methode existiert nicht mehr in API24 –