如何将AnimationDrawable与另一个动画结合?

时间:2019-06-07 04:48:18

标签: android jquery-animate animationdrawable

是否可以在下面合并这两个动画?它可以工作,但是似乎不得不单独调用它们(2次调用start())很奇怪

    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 :(得分:0)

请参见AnimatorSet并使用功能playTogether。但是,正如您在评论中提到的,AnimationDrawableAnimatorSet不兼容。在这种情况下,为确保两个动画一起开始,您可以这样编写

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();
  }

});