我有一个"轨道"这适用于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之间的某个地方我就停止它;
答案 0 :(得分:1)
感谢@NikolaDespotski,我设法通过为我的ObjectAnimator对象实现onUpdateListener来解决问题,如下所示:
anima.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
//Do collision detection here
}
});