gpt4 book ai didi

java - 在Android中检测长按

转载 作者:IT老高 更新时间:2023-10-28 13:14:54 24 4
gpt4 key购买 nike

我目前正在使用 onTouchEvent(MotionEvent event) { } 来检测用户何时按下我的 glSurfaceView 是否有办法检测何时进行长按。

我猜如果我在开发文档中找不到太多内容,那么这将是某种变通方法。类似于注册 ACTION_DOWN 并查看 ACTION_UP 之前的时间。

如何使用 opengl-es 检测 Android 上的长按?

最佳答案

GestureDetector 是最好的解决方案。

这是一个有趣的选择。在每个 ACTION_DOWNonTouchEvent 中安排一个 Runnable 在 1 秒内运行。在每个 ACTION_UPACTION_MOVE 上,取消预定的 Runnable。如果在 ACTION_DOWN 事件的 1 秒内发生取消,Runnable 将不会运行。

final Handler handler = new Handler(); 
Runnable mLongPressed = new Runnable() {
public void run() {
Log.i("", "Long press!");
}
};

@Override
public boolean onTouchEvent(MotionEvent event, MapView mapView){
if(event.getAction() == MotionEvent.ACTION_DOWN)
handler.postDelayed(mLongPressed, ViewConfiguration.getLongPressTimeout());
if((event.getAction() == MotionEvent.ACTION_MOVE)||(event.getAction() == MotionEvent.ACTION_UP))
handler.removeCallbacks(mLongPressed);
return super.onTouchEvent(event, mapView);
}

关于java - 在Android中检测长按,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7919865/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com