检测正在进行的触摸事件

时间:2014-10-09 19:46:53

标签: android touch android-event

我目前正在尝试在Android应用中检测正在进行的触摸事件。 详细地说,我想在片段中识别用户是否触摸了应用程序屏幕的任何部分。

Android的OnTouchListener按预期工作,除非触摸事件持续时间超过几秒而不移动

例如,正在检测触摸的前1-2秒,但之后的所有内容都没有。

是否有像“OnPressListener”或解决方法?

3 个答案:

答案 0 :(得分:0)

如果它是您要检测的定义明确的手势,请查看GestureDetector。

http://developer.android.com/reference/android/view/GestureDetector.html

答案 1 :(得分:0)

您可以使用

   aButton.setOnLongClickListener(new OnLongClickListener() {
    public boolean onLongClick(View arg0) {
        Toast.makeText(getApplicationContext(), "Long Clicked " ,
              Toast.LENGTH_SHORT).show();

        return true;    // <- set to true
    }
    });

在您的aButton上,如果您使用的是API&lt; 19你必须添加

android:longClickable="true"

布局xml中aButton的属性。

答案 2 :(得分:0)

我终于找到了。

解决方案是使用简单的OnTouchListener

private boolean pressed = false;

@Override
public boolean onTouch(View v, MotionEvent event) {
    int action = event.getAction();
    if (action == MotionEvent.ACTION_DOWN) {
        pressed = true;

    } else if ((action == MotionEvent.ACTION_UP)
            || (action == MotionEvent.ACTION_CANCEL)) {
        pressed = false;
    }

    return true;
}