in Animator Listener zweite Animation starten?

  • 2 Antworten
  • Letztes Antwortdatum
F

Feuerstern

Fortgeschrittenes Mitglied
28
Hallo Leute,
Ist es bedenklich aus einem Animator listener heraus einen zweiten Animator zu starten?

Code:
        final Animator animator1 = ObjectAnimator.ofFloat(view, "rotationY", 0.f, 90.f);
        animator1.setDuration(1800);

        // Rotate from 270 to 360 instead of 90 to 180 so the drawable is shown correct and not mirrored
        final Animator animator2 = ObjectAnimator.ofFloat(view, "rotationY", 270.f, 360.f);
        animator2.setDuration(1800);
        
        final AnimatorSet animatorSetScaleIn = new AnimatorSet();
        mAnimatorScaleIn.playTogether(
                ObjectAnimator.ofFloat(imageView, "scaleX", 0.0f, 0.8f),
                ObjectAnimator.ofFloat(imageView, "scaleY", 0.0f, 0.8f)
        );
        animatorSetScaleIn.setDuration(3600);
        
        animator1.addListener(new Animator.AnimatorListener() {
            @Override
            public void onAnimationStart(Animator animation) {

            }

            @Override
            public void onAnimationEnd(Animator animation) {
                animator2.start();
                animatorSetScaleIn.start();
            }

            @Override
            public void onAnimationCancel(Animator animation) {

            }

            @Override
            public void onAnimationRepeat(Animator animation) {

            }
        });

mit freundlichen Grüßen
Feuerstern
 
Wenn du verhinderst dass daraus eine rekursive Endlosschleife wird dann nicht, dann sollte es ok sein...
 
Zuletzt bearbeitet:
  • Danke
Reaktionen: Feuerstern
Sehe ich genau so.

Du solltest nur darauf achten, dass die Animation abgebrochen wird, wenn das Fragment bzw die Activity beendet wird.
Gleiches gilt für den Fall das das Fragment bzw die Activity in den Hintergrund geht.
Dafür gibt es die Methoden chancel(), end(), pause() und resume().
 
  • Danke
Reaktionen: Feuerstern und Jaiel
Zurück
Oben Unten