我們如何模擬觸摸事件長按?或者我們如何計算屏幕被觸摸的時間,全部在ACTION_DOWN狀態?模擬長按觸摸事件
Q
模擬長按觸摸事件
2
A
回答
14
我終於實現了一個觸摸屏長按代表長擊事件的TAP事件序列的開始時,THX所有:
textView.setOnTouchListener(new View.OnTouchListener() {
private static final int MIN_CLICK_DURATION = 1000;
private long startClickTime;
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_UP:
longClickActive = false;
break;
case MotionEvent.ACTION_DOWN:
if (longClickActive == false) {
longClickActive = true;
startClickTime = Calendar.getInstance().getTimeInMillis();
}
break;
case MotionEvent.ACTION_MOVE:
if (longClickActive == true) {
long clickDuration = Calendar.getInstance().getTimeInMillis() - startClickTime;
if (clickDuration >= MIN_CLICK_DURATION) {
Toast.makeText(MainActivity.this, "LONG PRESSED!",Toast.LENGTH_SHORT).show();
longClickActive = false;
}
}
break;
}
return true;
}
});
其中private boolean longClickActive = false;
是一個類變量。
2
1
您必須在ACTION_DOWN和ACTION_UP事件之間計算時間。 這是不可能只在ACTOIN_DOWN狀態來計算這個時間,因爲它是
+0
Thx,我通過使用ACTION_DOWN和ACTION_MOVE來完成。 –
1
試試這個。你不需要爲此找到破解。
final GestureDetector gestureDetector = new GestureDetector(new GestureDetector.SimpleOnGestureListener() {
public void onLongPress(MotionEvent e) {
Log.e("", "Longpress detected");
}
});
public boolean onTouchEvent(MotionEvent event) {
if (gestureDetector.onTouchEvent(event)) {
return true;
}
switch (event.getAction()) {
case MotionEvent.ACTION_UP:
break;
case MotionEvent.ACTION_DOWN:
break;
case MotionEvent.ACTION_MOVE:
break;
}
return true;
}
};
相關問題
- 1. BB10瀑布 - 模擬觸摸事件
- 2. Windows Phone 8 - 模擬觸摸屏事件
- 3. 模擬iPhone中的觸摸事件
- 4. 模擬和調度觸摸事件
- 5. 上YUI模擬觸摸事件3
- 6. 從android內核模擬觸摸事件
- 7. 用javascript模擬觸摸事件
- 8. 觸摸屏按鈕事件
- 9. Android模擬觸摸
- 10. 觸摸屏上的Windows將通過觸摸手指來模擬MouseDown事件嗎?
- 11. 是否有附加模塊或擴展模擬觸摸事件?
- 12. 傳輸觸摸事件回到家長
- 13. 觸摸事件
- 14. 觸摸事件
- 15. 在iphone上模擬觸摸
- 16. 使用ADB模擬觸摸
- 17. 如何在Android中模擬觸摸事件?
- 18. 模擬Chrome的觸摸事件 - 有沒有更好的方法?
- 19. 如何在Web瀏覽器中啓用觸摸事件模擬?
- 20. 模擬觸摸事件之間的延遲
- 21. 如何以編程方式模擬Meego中的觸摸事件?
- 22. 如何延遲模擬的觸摸事件?
- 23. Chrome開發人員工具如何模擬觸摸事件?
- 24. 使用/ dev/uinput模擬在Android的觸摸事件不工作
- 25. 模擬觸摸事件在一定間隔的Android
- 26. 與Hammer.js和觸摸模擬器捏事件
- 27. 在EditText上模擬觸摸事件以顯示軟鍵盤
- 28. 有沒有辦法模擬Windows 8中的觸摸事件?
- 29. 在iOS上模擬系統寬觸摸事件
- 30. 在後臺線程中模擬Android中的觸摸事件
感謝這導致我的解決方案。 – ctapp1
問題是長時間輕敲等待ACTION_MOVE,有時不會調用,但必須捕獲長時間輕敲 –