Как объединить AnimationDrawable с другой анимацией? - PullRequest
0 голосов
/ 07 июня 2019

Возможно ли объединить эти 2 анимации ниже?Это работает, но кажется странным, что их нужно вызывать отдельно (2 вызова для начала ())

    ImageView rocketImage = (ImageView) findViewById(R.id.rocket_image);
    rocketImage.setBackgroundResource(R.drawable.rocket_thrust);
    rocketAnimation = (AnimationDrawable) rocketImage.getBackground();

    rocketImage.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View view) {
        rocketAnimation.start();
        rocketImage.animate().x(100).y(100).withLayer().setDuration(500).start();
      }
  });

1 Ответ

0 голосов
/ 07 июня 2019

См. AnimatorSet и используйте функцию playTogether. Однако, как вы упомянули в ваших комментариях, AnimationDrawable не совместимо с AnimatorSet. В этом случае, чтобы обе анимации запускались вместе, вы можете написать это так:

AnimationDrawable rocketAnimation = (AnimationDrawable) rocketImage.getBackground();

rocketImage.setOnClickListener(new View.OnClickListener() {
  @Override
  public void onClick(View view) {
    rocketImage.animate().x(100).y(100).withLayer().setDuration(500).setListener(new Animator.AnimatorListener() {
        @Override
        public void onAnimationStart(Animator animation) {
            rocketAnimation.start();
        }

        @Override
        public void onAnimationEnd(Animator animation) {

        }

        @Override
        public void onAnimationCancel(Animator animation) {

        }

        @Override
        public void onAnimationRepeat(Animator animation) {

        }
    }).start();
  }

});

...