ImageView ObjectAnimator转场+转场时的碰撞检测
ImageView ObjectAnimator transition + collision detection during transition
我有一个 "track" 用于 50 "lenghts" 并且我有一个 imageView 每次点击 5 "lenghts" 改变位置。我用这样的动画处理过渡:
anima = ObjectAnimator.ofFloat(bar, "translationX", position*pix);
anima.setDuration(500);
anima.start();
在轨道的末尾,我有另一个我想检测碰撞的图像视图,所以我在动画之后这样做:
anima.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
if (Rect.intersects(n1, barRect)) {
//Stuff after collision
}
}
我的问题是,有没有办法检测在这个动画期间的碰撞,所以如果碰撞发生在那些之间的某个地方,我会停止它“ 5 次跳跃
感谢@NikolaDespotski,我已经通过为我的 ObjectAnimator 对象实现 onUpdateListener 来解决问题,如下所示:
anima.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
//Do collision detection here
}
});
我有一个 "track" 用于 50 "lenghts" 并且我有一个 imageView 每次点击 5 "lenghts" 改变位置。我用这样的动画处理过渡:
anima = ObjectAnimator.ofFloat(bar, "translationX", position*pix);
anima.setDuration(500);
anima.start();
在轨道的末尾,我有另一个我想检测碰撞的图像视图,所以我在动画之后这样做:
anima.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
if (Rect.intersects(n1, barRect)) {
//Stuff after collision
}
}
我的问题是,有没有办法检测在这个动画期间的碰撞,所以如果碰撞发生在那些之间的某个地方,我会停止它“ 5 次跳跃
感谢@NikolaDespotski,我已经通过为我的 ObjectAnimator 对象实现 onUpdateListener 来解决问题,如下所示:
anima.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
//Do collision detection here
}
});