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方法即可。
完成!