2011-09-16 59 views
0

在純Java中有MouseInputListener,我可以使用它來處理這兩個事件。如何區分android中的滑動和點擊?

我如何與Android做呢?

如果我實現這兩個事件,則只有一個被觸發(onClickListener),而不是其他。

更新:

的問題是不是檢測手指移動。

我有一個觀點(ImageView爲例)。我需要檢測該視圖上的點擊,即onClickListener(),並在該視圖上移動手指(即按下,移動然後鬆開手指)。

這裏的問題是,只有onClickListener()被調用,而MotionEvent處理程序沒有被捕獲。

我需要能夠區分這2個事件,因爲主要事件應該是手指移動,並且onClickListener()應該只是說「不要單擊此視圖。旋轉此視圖。」

希望這更清楚。

+1

相關的,可能的重複:http://stackoverflow.com/q/937313/866022 – yoozer8

+0

你可能想捕捉手指觸摸和'MotionEvent',或者你是專門捕捉鼠標輸入嗎? –

回答

0

OnClickListenerOnTouchListener有點阻礙對方,因爲它們都消耗 s,被抓到View

基本上可以寫一個OnTouchListener用於檢查兩件事。您將獲得MotionEvent作爲參數。請通過MotionEvent.getAction()檢查它的行爲,例如如果它等於MotionEvent.ACTION_DOWN(用戶把手指在顯示器上)。如果用戶釋放手指約在。同一位置ACTION_UP,可能要解釋爲一次點擊。否則,將用ACTION_MOVE事件得到的位置解釋爲一個手勢。

但是框架已經有一些類爲你做了這個解釋工作,請查看SimpleGestureDetector類,它是SimpleOnGestureListener。這對普通事件有一些回調,例如onSingleTapConfirmed()onFling()。您只需將MotionEvents從OnTouchListener提供給GestureDetector。

+0

謝謝。 SimpleGestureDetector完美地工作。 – Igor

+0

很高興我能幫到你。如果有幫助,請將其標記爲[正確答案](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)。 *(因爲你是新手,所以你可能不知道這個機制)* – 2011-09-19 22:21:43