我有一个奇怪的难题,我正在努力应对。我希望用户使用两个手指并同时触摸屏幕两个,我想找到每个触摸事件的触摸坐标和按下时间。
尝试执行此操作时,我的第一种方法是使用onTouchListener
,并设置event.getAction()==(MotionEvent.ACTION_DOWN
。但是,我很快意识到这种方法只适用于单个触摸点,而不是两个同时触摸点。
我的第二种方法是尝试像
这样的东西if (event.getAction()==(MotionEvent.ACTION_DOWN) || event.getAction()==(MotionEvent.ACTION_POINTER_DOWN)
{
//Find touchtime and touch coordinates
但这只记录了第一个触摸点,而不是第二个触摸点。有谁知道我会如何处理这个问题?
提前致谢
答案 0 :(得分:2)
你的方法很接近。首先,两根手指永远不会在同一时间下降 - 它们总是会在几微秒内熄灭。所以你不要检查两者是否同时下降,但是如果它们之间的差距小于它们(比如几毫秒)。其次,第一个手指向下生成一个ACTION_DOWN。第二个将生成ACTION_POINTER_DOWN。运动事件将包括指针数量。因此,当您看到ACTION_DOWN时,您可以节省时间,当您看到ACTION_POINTER_DOWN时,您会检查它是否是第二个点,如果是,则检查时间增量。