2013-03-14 72 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

相關問題