我想在我正在製作的應用程序中實現捏縮放,並且遇到了有關onTouch事件的問題。看起來,指針向上的動作不會立即觸發,就像您在動作移動發生之前不會獲取指針一樣。因此,如果兩個手指幾乎同時觸碰屏幕,會發生什麼情況:第二根手指(應該是指針(1))在指針向下調用之前會發出移動動作,使代碼認爲它是DRAG而不是縮放。其他人看過這個?無論如何圍繞它?謝謝。onTouch事件有時不會觸發ACTION_POINTER_DOWN
回答
我在我的項目中遇到了同樣的問題。如果我觸摸屏幕並且手指太接近,系統不會實現多點觸控事件。我認爲這是因爲當你的手指太接近時,系統會將它視爲一根手指。
也許你可以使用getSize()方法來檢查這個假設,以估計當您用單根手指觸摸屏幕時以及用兩根手指觸摸屏幕時靠近屏幕的區域。
原來是我用閃存傳給我的Evo的自定義ROM的一個問題。再次感謝哈拉的建議,因爲那竟然是我的另一個錯誤。
面臨着同樣的問題 原來,ACTION_POINTER_2_DOWN在我的應用程序被解僱時,我感動了第二根手指和ACTION_MOVE被解僱 後的getAction()方法給出了需要對這份名單
要檢查的事件數量http://developer.android.com/reference/android/view/MotionEvent.html#ACTION_MOVE – Omkar 2011-09-02 12:55:59
一定要在您的交換機中包含MotionEvent.ACTION_MASK。例如:
switch(event.getAction() & MotionEvent.ACTION_MASK){
case MotionEvent.ACTION_DOWN:
some code
break;
case MotionEvent.ACTION_POINTER_DOWN:
ETC
我已經解決了同樣的問題與此:
switch(event.getActionMasked()) {
case MotionEvent.ACTION_POINTER_DOWN:
//your code
break;
}
我已經注意到,如果onTouch(事件)方法返回被解僱這個(MotionEvent.ACTION_POINTER_DOWN)的情況下真正下面給出:
@Override
public boolean onTouchEvent(MotionEvent event) {
switch(motionEvent.getAction() & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_POINTER_DOWN:
//your code
break ;
}
return true;
}
注: MotionEvent.ACTION_DOWN纔剛剛聽取如果onTouch()方法具有r個設置了一個布爾值作爲返回值super.onTouchEvent(event);所以確保真實,以避免這種情況。
- 1. 以編程方式觸發ACTION_POINTER_DOWN事件
- 2. DataReceived事件有時不會觸發
- 3. JS BeforeUnload事件有時不會觸發
- 4. Android onTouch事件不會發生?
- 5. 有時Asp.Net Button會觸發事件,有時不會?
- 6. OnTouch沒有觸發
- 7. ViewFlipper的onTouch事件不會被觸發,而其子按鈕的onClick事件是
- 8. 以編程方式觸發ontouch事件
- 9. Android爲多個ImageViews觸發onTouch事件
- 10. libevent:超時事件不會觸發
- 11. 使用UpdatePanel時事件不會觸發
- 12. 計時器事件不會觸發
- 13. 事件numericupdown_BackColorChanged不會觸發
- 14. metachange事件不會觸發
- 15. SelectedIndexChanged事件不會觸發
- 16. Onchange事件不會觸發
- 17. PushNotificationReceived事件不會觸發
- 18. onClick事件不會觸發
- 19. jquery不會觸發事件
- 20. jgesture事件不會觸發
- 21. 事件不會觸發
- 22. ProgressBar.Tap事件不會觸發?
- 23. onclick事件不會觸發
- 24. onClick事件不會觸發
- 25. IndexedDB事件不會觸發
- 26. 事件不會觸發
- 27. 「backbutton」事件不會觸發
- 28. TextChanged事件不會觸發
- 29. ViewAttached事件不會觸發
- 30. ItemRealized事件不會觸發
感謝您的建議,這將派上用場,我敢肯定。但我不確定這是我的問題,因爲無論我在哪裏觸摸屏幕,它都會發生。使用調試器,我可以看到指針向上和向下事件似乎總是被延遲,併發生在移動事件之後(並且移動事件在該實例中總是隻有一個指針)。我甚至嘗試過「Dotty」應用程序,並可以在其中看到相同的行爲。這可能是硬件問題嗎?我有一個Evo w /定製ROM。謝謝。 – JStew 2010-07-10 16:16:47