我目前正在尝试在Android应用中检测正在进行的触摸事件。 详细地说,我想在片段中识别用户是否触摸了应用程序屏幕的任何部分。
Android的OnTouchListener
按预期工作,除非触摸事件持续时间超过几秒而不移动。
例如,正在检测触摸的前1-2秒,但之后的所有内容都没有。
是否有像“OnPressListener”或解决方法?
答案 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;
}