2013-03-14 50 views

回答

2

你可以在你的View上覆盖onTouchEvent()。当第一个“指针”被放置时,将会给出ACTION_DOWN。从那时起,当随后的手指被按下然后松开时,您将获得ACTION_POINTER_DOWNACTION_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); 
} 
+0

谢谢!但我认为代码仅用于单点触摸。如果多于一个指针,其中一个指针起作用,另一个指针不起作用,但会得到MotionEvent.ACTION_UP事件。 – 2013-03-14 04:07:40

+0

您正在使用'ViewGroup'的子类吗?我认为如果你正在使用一个有孩子的View,那就更加复杂了。 – wsanville 2013-03-14 04:08:55

+0

现在可以。如果多个触摸指针,第一个向下指针捕获'ACTION_DOWN',其他捕获'ACTION_POINTER_DOWN'。最后一个向下指针捕获'ACTION_UP',其他捕获'ACTION_POINTER_UP' – 2013-03-14 06:58:27

相关问题