2016-07-25 21 views
0

Ich möchte Animation mehrere Ansichten, sagen wir auf 4 verschiedenen Bildansichten hinzufügen, so wie kann ich die Animation für diese Elemente starten. Der Ablauf sollte Animation beginnt bei 1 Element und wenn es fertig ist Animation sollte am 2. Element beginnen und wenn dies fertig ist, sollte es am 3. Element beginnen.Mehrere Animationen android

+0

Ich habe versucht, zwei Bilder zu machen und Animation auf das erste Element beim Klicken auf die Schaltfläche zu starten. Ich habe Animations-Listener verwendet, um das Start- und Ende-Animationsereignis zu erkennen, so dass beim Beenden der Animation die erste Animation gelöscht und der Wert einer Integer-Variablen erhöht wird und überprüft wird, ob position == 1 ist. Dies funktioniert auf 2 Objekte aber nicht mehr als das. –

+0

@android_beginner also willst du es mit zwei imageviews oder einem imageview tun – eLemEnt

Antwort

1

Sie müssen Animation.AnimationListener Schnittstelle verwenden, um die Animationen zu verfolgen oder zu überwachen. Dieser Listener enthält drei Methoden: 1. onAnimationStart(): Diese Methode wird aufgerufen, wenn die Animation gestartet wird. 2. onAnimationEnd(): Diese Methode wird aufgerufen, wenn die Animation beendet wird. 3. onAnimationRepeat(): Diese Methode wird aufgerufen, wenn die Animation wiederholt wird.

die Animation.AnimationListener erstellen, wie unten dargestellt:

Animation.AnimationListener animationListener = new Animation.AnimationListener() { 
     @Override 
     public void onAnimationStart(Animation animation) { 

     } 

     @Override 
     public void onAnimationEnd(Animation animation) { 

     } 

     @Override 
     public void onAnimationRepeat(Animation animation) { 

     } 
    }; 

Um nun alle Ihre Animationen zu überwachen, müssen Sie für jede Animation separate Instanzen von Animation.AnimationListener Schnittstelle erstellen. In der Methode onAnimationEnd() jeder Schnittstelle müssen Sie die nächste Animation starten. Zum Beispiel in der Animations.AnimationListener onAnimationEnd() -Methode für erste ImageView starten Sie die Animation für die zweite ImageView.

+0

U bedeutet zu sagen, dass ich mehrere animation listener machen müssen? –

+0

Ja, Sie müssen für jede Animation einen separaten AnimationsListener erstellen. –

+0

Ok danke, ich habe mich nur gefragt, ob es eine Möglichkeit gibt, dies ohne mehrere Animations-Listener zu tun? –

0
Animator animation = AnimatorInflater.loadAnimator(getApplicationContext(), 
         R.animator.selectzoom);//selectzoom is a xml file of your animation 

Um Animation zu einem Bild hinzuzufügen, basierend auf Index eines Bildwertes in Bildansicht Array

animation.setTarget(imageView[animaterimg]);//imageView is a array of your images views 
animation.start(); 

Animation zu einem Bild zu stoppen, basierend auf Index eines Bildwertes in Bildansicht Array

imageView[animaterimg].clearAnimation(); 
imageView[animaterimg].animate().cancel(); 

selectzoom muss in Animator Ordner

<set xmlns:android="http://schemas.android.com/apk/res/android" > 

    <objectAnimator 
     android:duration="1000" 
     android:interpolator="@android:interpolator/accelerate_decelerate" 
     android:repeatCount="infinite" 
     android:repeatMode="reverse"/> 

    <objectAnimator 
     android:duration="1000" 
     android:interpolator="@android:interpolator/accelerate_decelerate" 
     android:propertyName="scaleX" 
     android:repeatCount="infinite" 
     android:repeatMode="reverse" /> 

</set>