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