移动事件后LongPress可以触发吗?

Ada*_*H S 2 java android android-screen android-gesture

我正在开发一个简单的Android应用程序,我的要求是,

"在屏幕上的一些移动事件(MotionEvent.ACTION_MOVE为真)之后,如果用户停止移动几秒钟,而不是从屏幕上拿出手指,那么需要执行一些操作."

*我了解到LongPress是在用户在触发向下事件后没有进行任何移动时触发的事件(MotionEvent.ACTION_DOWN).*

那么有什么方法可以在屏幕上移动后触发LongPress吗?

或者我应该为相同的功能创建自己的监听器?

任何帮助表示赞赏.

谢谢.

Bra*_*raj 5

cancel每当你在屏幕上移动手指时,想法就是定时器(MotionEvent.ACTION_MOVE).当你在一段时间后停止移动时,比如3秒后,定时器代码将被执行,你可以在其中执行长按任务.如果您停止移动一段时间并在经过时间(3秒)之前再次开始移动,则再次设置新计时器,依此类推.希望它能帮到你.

timer = new Timer();

public boolean onTouchEvent(MotionEvent event) 
{
    switch(event.getAction()) 
    {
        case MotionEvent.ACTION_DOWN:
             break;

        case MotionEvent.ACTION_MOVE:
             timer.cancel();
             timer = null;
             timer = new Timer();
             timer.schedule(new TimerTask() 
             {                  
                @Override
                public void run() {
                    // do your long press task here
                }
             }, 3000);
             break;

        case MotionEvent.ACTION_UP:
             timer.cancel();
             timer = null;
             break;
    }
    return super.onTouchEvent(event);
}
Run Code Online (Sandbox Code Playgroud)