Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 關於android開發 >> 手勢交互GestureDetector的教程,交互gesturedetector

手勢交互GestureDetector的教程,交互gesturedetector

編輯:關於android開發

手勢交互GestureDetector的教程,交互gesturedetector


GsetureDetector

交互過程

  1. 觸屏的一剎那,觸發MotionEvent事件
  2. 被OnTouchListener監聽,在onTouch()中獲得MotionEvent對象
  3. GestureDetector轉發MotionEvent對象到OnGestureListener
  4. OnGestureListener獲得該對象,根據該對象封裝的信息做出合適的反饋

內部類:兩個監聽器接口

OnGestureListener:單擊類

方法
  1. 單擊onDown(MotionEvent e)
  2. 抬起onSingleTapUp(MotionEvent e)
  3. 短按onShowPress(MotionEvent e)
  4. 長按onLongPress(MotionEvent e)
  5. 滾動onScroll(MotionEvent e1,MotionEvent e2,float distanceX,float distanceY)
  6. 滑動onFling(MotionEvent e1,MotionEvent e2,float velocityX,float velocityY)

OnDoubleTapListener:雙擊

方法
  1. 雙擊OnDoubleTap(MotionEvent e)
  2. 雙擊按下和抬起各觸發一次:onDoubleTapEvent(MotionEvent e)?應用例子?
  3. 單擊確定onSingleTapConfirmed(MotionEvent e)?

SimpleOnGestureListener

概述: SimpleOnGestureListener實現了上面的連個接口 OnGestureListener and OnDoubleTapListener,可以通過繼承這個類來實現你所想實現的手勢交互動作。需要的動作可以在接口裡找對應的方法,如果方法返回false就是什麼都不做。

運用例子

效果

這個例子在主界面加載一個圖片,然後左右滑動提示相應的文字。

過程
  1. OnTouchListener監聽,在onTouch中獲得MotionEvent對象
img.setOnTouchListener(new OnTouchListener() {			
			@Override//捕獲的觸摸屏發生的event事件
			public boolean onTouch(View v, MotionEvent event) {
				// TODO Auto-generated method stub
				return true;//記得這裡改為ture
			}
		});
  1. 在Activity建立一個繼承於SimpleOnGestureListener的類
class MyGestureListener extends SimpleOnGestureListener{
    	@Override
    	public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
    			float velocityY) {
    		// TODO Auto-generated method stub
    		//e1和e2分別是開始和結束的動作對象
    		//通過e1和e2位置的比較判斷手勢的動作
    		if (e1.getX() - e2.getX() > 50) {
		            Toast.makeText(MainActivity.this, "從右向左滑動",0).show();
			}else if(e2.getX() - e1.getX() >50){
			    Toast.makeText(MainActivity.this, "從左向右滑動",0).show();
			}
    		return super.onFling(e1, e2, velocityX, velocityY);
    	}
    }

3.獲得一個GestureDetextor對象(聲明省略了)

gestureDetector = new GestureDetector(MainActivity.this, new MyGestureListener());

4.在onTouch方法中gestureDetector轉發MotionEvent對象到OnGestureListener(這裡是MyGestureListener)

gestureDetector.onTouchEvent(event);

5.MyGestureListener獲得該對象,根據該對象封裝的信息做出合適的反饋(左右滑動提示對應的文字)

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved