2
如何知道视图处于触摸状态? 如果在一个视图上有多个触点,如何捕获最后一个触点的事件。 请帮忙?如何知道Android中的视图处于触摸状态
如何知道视图处于触摸状态? 如果在一个视图上有多个触点,如何捕获最后一个触点的事件。 请帮忙?如何知道Android中的视图处于触摸状态
你可以在你的View
上覆盖onTouchEvent()。当第一个“指针”被放置时,将会给出ACTION_DOWN
。从那时起,当随后的手指被按下然后松开时,您将获得ACTION_POINTER_DOWN
或ACTION_POINTER_UP
。然后,当最后的指针/手指被释放时,您的视图将得到ACTION_UP
。这清楚地在MotionEvent docs中阐明。
像这样的东西可能是你正在寻找的东西,只是继承你正在使用的任何View
。
@Override
public boolean onTouchEvent(MotionEvent event)
{
if(event.getAction() == MotionEvent.ACTION_DOWN)
isTouching = true;
else if(event.getAction() == MotionEvent.ACTION_UP)
isTouching = false;
return super.onTouchEvent(event);
}
谢谢!但我认为代码仅用于单点触摸。如果多于一个指针,其中一个指针起作用,另一个指针不起作用,但会得到MotionEvent.ACTION_UP事件。 – 2013-03-14 04:07:40
您正在使用'ViewGroup'的子类吗?我认为如果你正在使用一个有孩子的View,那就更加复杂了。 – wsanville 2013-03-14 04:08:55
现在可以。如果多个触摸指针,第一个向下指针捕获'ACTION_DOWN',其他捕获'ACTION_POINTER_DOWN'。最后一个向下指针捕获'ACTION_UP',其他捕获'ACTION_POINTER_UP' – 2013-03-14 06:58:27