我将在我的画布上同时有几个对象,并且需要检测用户在哪个对象上执行了手势。我能想到的唯一方法是将屏幕分成多个视图并在每个视图中收听,但这不是很有效,所以有没有人更好的方法,最好使用单独属于每个对象的单独手势检测器?
如果有人能帮助我,我将非常感激,因为我整天都在努力解决这个问题
我将在我的画布上同时有几个对象,并且需要检测用户在哪个对象上执行了手势。我能想到的唯一方法是将屏幕分成多个视图并在每个视图中收听,但这不是很有效,所以有没有人更好的方法,最好使用单独属于每个对象的单独手势检测器?
如果有人能帮助我,我将非常感激,因为我整天都在努力解决这个问题
如果您在画布上跟踪对象的位置/命中框,您可以将其与 MotionEvent 中的 RawX 和 RawY 值进行比较。
@Override
public boolean onDoubleTap(MotionEvent e) {
float e_x = e.getRawX();
float e_y = e.getRawY();
if(e_x > 100 && e_x < 200 && e_y > 400 && e_y < 600){
// do something
}
return true ;
}
这就是我所做的,只需检查坐标