我目前正在嘗試在我的Android應用中檢測到正在進行的觸摸事件。 詳細我想在片段內識別用戶是否觸摸了應用屏幕的任何部分。檢測正在進行的觸摸事件
Android的OnTouchListener
按預期工作,除非觸摸事件持續時間超過幾秒而不移動。
例如,觸摸的前1-2秒被檢測到,但之後的所有內容都不會。
有沒有像「OnPressListener」或解決方法?
我目前正在嘗試在我的Android應用中檢測到正在進行的觸摸事件。 詳細我想在片段內識別用戶是否觸摸了應用屏幕的任何部分。檢測正在進行的觸摸事件
Android的OnTouchListener
按預期工作,除非觸摸事件持續時間超過幾秒而不移動。
例如,觸摸的前1-2秒被檢測到,但之後的所有內容都不會。
有沒有像「OnPressListener」或解決方法?
我終於找到了。
的解決方案是使用一個簡單的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;
}
如果您嘗試檢測的是明確定義的手勢,請查看GestureDetector。
http://developer.android.com/reference/android/view/GestureDetector.html
您可以在A按鈕使用
aButton.setOnLongClickListener(new OnLongClickListener() {
public boolean onLongClick(View arg0) {
Toast.makeText(getApplicationContext(), "Long Clicked " ,
Toast.LENGTH_SHORT).show();
return true; // <- set to true
}
});
,如果您使用的API < 19,你必須
android:longClickable="true"
屬性添加到您的A按鈕佈局XML。
感謝您的回答,但只要觸摸持續,我就需要獲得一個事件,而不是觸摸發生後的事件。 – Markus 2014-10-09 19:57:04
你需要長按監聽? – JoaoBiriba 2014-10-09 19:48:55
是的,類似的東西 – Markus 2014-10-09 19:50:28