我有一個ImageView
填補我的整個Activity
。我需要能夠檢測4個觸摸事件:檢測刷卡,單擊,按住一個查看Android
- 保持(大於400毫秒)
- 點擊
- 向左滑動
- 向右滑動,即可
在我能夠瞬間使用以下代碼檢測前兩個:
imageView.setOnTouchListener(new View.OnTouchListener() {
private Timer timerr = new Timer();
private long LONG_PRESS_TIMEOUT = 400; // TODO: your timeout here
private boolean wasLong = false;
@Override
public boolean onTouch(View v, MotionEvent event) {
Log.d(getClass().getName(), "touch event: " + event.toString());
if (event.getAction() == MotionEvent.ACTION_DOWN) {
// HOLD DETECTED
timerr.schedule(new TimerTask() {
@Override
public void run() {
SlideShow.this.runOnUiThread(new Runnable() {
@Override
public void run() {
}, LONG_PRESS_TIMEOUT);
return true;
}
if (event.getAction() == MotionEvent.ACTION_UP) {
if (!isPaused && !wasLong) {
// CLICK DETECTED
timerr.cancel();
timerr = new Timer();
if (!wasLong) {
return false;
}
});
現在我試圖用這個問題的代碼實現向右滑動並滑動左邊的動作。 Android Swipe on List與此問題是,這可以在列表視圖上工作,在那裏你可以實現整個列表視圖的onTouchListener
,以及列表項的單獨的onItemClickListener
。儘管只有一個Listener可用,但我不知道如何適應這種情況。