我们如何模拟触摸事件长按?或者我们如何计算屏幕被触摸的时间,全部在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,有时不会调用,但必须捕获长时间轻敲 –