天天看點

Android手勢滑動識别器應用

1.建立一個手勢識别器GestureDetector,實作相應的Listener

2.對應的Activity中捕獲手勢事件,并傳遞到GestureDetector

3.在listener中實作針對收到event的相應動作

下面以手勢識别器收到滑動事件,切換activity為例:

public abstract class BaseGDActivity extends Activity {
	private GestureDetector gestureDetector;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    	// TODO Auto-generated method stub
    	super.onCreate(savedInstanceState);
    	gestureDetector = new GestureDetector(this, new SimpleOnGestureListener() {
			//velocityX表示滑動速度
    		@Override
			public boolean onFling(MotionEvent e1, MotionEvent e2,
					float velocityX, float velocityY) {
    			//避免傾斜滑動
    			if(Math.abs(e1.getRawY()-e2.getRawY()) > 100){
    				//Toast.makeText(context, text, duration)
    				return true;
    			}
    			//避免滑動速度過慢
    			if(Math.abs(velocityX) < 200){
    				return true;
    			}
				if((e1.getRawX() - e2.getRawX()) > 200){
					turnNext();//滑動到下一頁
					return true;
				}else if((e2.getRawX() - e1.getRawX()) > 200){
					turnPre();//滑動到上一頁
				    return true;
				}
				
				return super.onFling(e1, e2, velocityX, velocityY);
			}

		});
    }
    
	 /**
	  * 接收touch event   
	  */
	 @Override
	public boolean onTouchEvent(MotionEvent event) {
		return gestureDetector.onTouchEvent(event);		
	} 
	 
	public abstract void turnNext(); 
	
	public abstract void turnPre(); 
	
}
           

繼承該activity,在對應的activity中實作切換下一頁turnNext和上一頁turnPre方法即可。

完成!