转换期间ImageView ObjectAnimator转换+碰撞检测

时间:2016-08-27 18:18:04

标签: android android-animation android-imageview objectanimator

我有一个"轨道"这适用于50"长度"我有一个imageView,可以在点击时改变位置5" lenghts"一次。我用这样的动画处理过渡:

  anima = ObjectAnimator.ofFloat(bar, "translationX", position*pix);
  anima.setDuration(500);
  anima.start();

在赛道的最后,我有另一个想要检测碰撞的imageview,所以在动画完成后我就这样做了:

anima.addListener(new AnimatorListenerAdapter() {
            @Override
            public void onAnimationEnd(Animator animation) {
                if (Rect.intersects(n1, barRect)) {
                   //Stuff after collision
                }


}

我的问题是,有没有办法在这个动画期间检测碰撞所以如果碰撞介于那些" 5长度跳跃和#34之间的某个地方我就停止它;

1 个答案:

答案 0 :(得分:1)

感谢@NikolaDespotski,我设法通过为我的ObjectAnimator对象实现onUpdateListener来解决问题,如下所示:

 anima.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
            @Override
            public void onAnimationUpdate(ValueAnimator animation) {
                   //Do collision detection here
            }

  });