2017-01-20 1 views
0

Was ich versuche zu machen ist die ImageView wackeln bei Tastendruck, und wenn die Animation vorbei ist, verschwindet das Bild von ImageView.Anweisung ausführen, nachdem die Animation fertig ist

Ich möchte diese Aussage zunächst auszuführen:

ObjectAnimator 
       .ofFloat(img, "translationX", 0, 25, -25, 25, -25, 15, -15,  6, -6, 0) 
       .setDuration(300) 
       .start(); 

und nachdem die Animation beendet ist, sollte diese Anweisung ausführen:

 img.setImageResource(android.R.color.transparent); 

ich sie einer nach dem anderen, also die Animation ‚doesn Am Ende sind die Bilder weg.

Antwort

1

Verwenden Sie den Code unten,

ObjectAnimator.ofFloat(img, "translationX", 0, 25, -25, 25, -25, 15, -15,  6, -6, 0).addListener(new AnimatorListenerAdapter() { 
      @Override 
      public void onAnimationEnd(Animator animation) { 
       super.onAnimationEnd(animation); 
       Log.e("Animation-Completed:", "onAnimationEnd"); 
       img.setImageResource(android.R.color.transparent); 
      } 
     }).setDuration(300).start(); 

Edit: Dauer hinzuzufügen:

ObjectAnimator anim = ObjectAnimator.ofFloat(img, "translationX", 0, 25, -25, 25, -25, 15, -15,  6, -6, 0); 
anim.setDuration(300);     // Duration in milliseconds 
anim.addListener(new AnimatorListenerAdapter() { 
       @Override 
       public void onAnimationEnd(Animator animation) { 
        super.onAnimationEnd(animation); 
        Log.e("Animation-Completed:", "onAnimationEnd"); 
        img.setImageResource(android.R.color.transparent); 
       } 
      }); 
anim.start(); 
+0

Ich erhalte eine Fehlermeldung 'Variable 'img' wird aus der inneren Klasse heraus aufgerufen und muss als final deklariert werden. – Eddie

+0

:) @Eddie folgen Sie einfach den Fehler und fügen Sie das 'final' Schlüsselwort vor der Deklaration der' img' Variablen wie unten, 'final ImageView img = (ImageView) findViewById (R.id.some_id);' –

+0

Kann ich noch ändere es seine Eigenschaften, wenn sein endgültiges erklärt? – Eddie

0

Verwenden Unten Code:

ObjectAnimator 
      .ofFloat(img, "translationX", 0, 25, -25, 25, -25, 15, -15,  6, -6, 0) 
      .setDuration(300) 
      .start() 
      .addListener(new Animator.AnimatorListener() { 
       @Override 
       public void onAnimationStart(Animator animator) { 

       } 

       @Override 
       public void onAnimationEnd(Animator animator) { 
        img.setImageResource(android.R.color.transparent); 
       } 

       @Override 
       public void onAnimationCancel(Animator animator) { 

       } 

       @Override 
       public void onAnimationRepeat(Animator animator) { 

       } 
      }); 
Verwandte Themen