android 一個fling onfling的例子
這裡示範的是一個在螢幕(TextView)上, 用手指快速輕撥的動作,常用於多頁面的換頁
protected SimpleOnGestureListener tvListener;
tvGesture = new GestureDetector(this.getActivity(), tvListener);
//先監測textview的OnTouchListener事件, 並call 由GestureDetector
//定義的tvGesture的onTouchEvent
textview.setOnTouchListener(new OnTouchListener() {
@Override public boolean onTouch(View v, MotionEvent event) {
// 如果還沒有內容,不接受任何按鍵
if (textview.getText().equals("")) {
return true;
}
tvGesture.onTouchEvent(event);
return false;
}
});
//tvListener 是一個SimpleOnGestureListener,
//是GestureDetector定義tvGesture的一個constructor的參數
//onFling的程序就寫在tvListener 裡面, 這裡的fling示範的是上下滑動
tvListener = new SimpleOnGestureListener() {
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2,
float velocityX, float velocityY) {
float dX = e2.getX() - e1.getX();
//水平移動太大時,不啟動onFling
if (Math.abs(dX) > 50)
return false;
//往上滑動(滑動距離大於50才啟動)
//velocityY是垂直移動速度,單位像素
if (e1.getY() - e2.getY() > 80 && Math.abs(velocityY)>100) {
pageNext();
//往下滑動
} else if (e1.getY() - e2.getY() < -80 Math.abs(velocityY)>100) {
pagePre();
}
return true;
}
};