天天看點

巧用GestureDetector滑動頁面

   大家好,這講和大家分享的是運用GestureDetector手勢滑動頁面。當我們使用一款的軟體,可以肯定的是頁面要有很多的切換,我們還是用點選按鈕切換的話,使用者體驗不高,使用者很快失去興趣,不久就會狠心卸掉該不行軟體。而這時剛好有個工具出現了,GestureDetector手勢的使用大大提高使用者體驗,使用者隻要輕輕滑動頁面,就會實作翻頁的效果。同樣操作起來也是很簡單’,。下面我為大家詳解。

public class BaseSetupActivity extends Activity {

//定義手勢

private GestureDetector mDetector;

protected void onCreate(Bundle savedInstanceState) {

  super.onCreate(savedInstanceState);

  context=this;

//初始化GestureDetector,進行監聽OnGestureListener()方法,在onFling方法實作側滑效果

  mDetector=new GestureDetector(context, new OnGestureListener() {

   @Override

   public boolean onSingleTapUp(MotionEvent e) {

    // TODO Auto-generated method stub

    return false;

   }

   @Override

   public void onShowPress(MotionEvent e) {

    // TODO Auto-generated method stub

   }

   @Override

   public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,

     float distanceY) {

    // TODO Auto-generated method stub

    return false;

   }

   @Override

   public void onLongPress(MotionEvent e) {

    // TODO Auto-generated method stub

   }

   public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,

     float velocityY) {

//判斷縱向劃動距離不能超過100,Math.abs絕對值

   if(Math.abs(e2.getRawY()-e1.getRawY())>100){

    ToastUtil.show(context, "不能這樣滑動哦");

    return true;

  }   

   //判斷x縱速度

    if(Math.abs(velocityX)<100){

     ToastUtil.show(context, "速度不能太慢哦");

     return true;

    }

    //翻頁到上一頁

    if(e2.getRawX()-e1.getRawX()>200){

     intent intent=new Intent(this,perviousActivity.class);

    startActivity(intent);

     return true;

    }

   //翻頁到下一頁

    if(e1.getRawX()-e2.getRawX()>200){

    Intent intent=new Intent(this,nextActivity.class)

     return true;

    }

    return true;

   }

   @Override

   public boolean onDown(MotionEvent e) {

    // TODO Auto-generated method stub

    return false;

   }

  });

}

 //觸摸事件

  public boolean onTouchEvent(MotionEvent event) {

   //委托觸摸事件進行觸摸方法

   mDetector.onTouchEvent(event);

   return super.onTouchEvent(event);

  }

恩,就是那麼簡單明了,友友看了應該是秒懂知識,但不要小看它,實際開發經常用到的。

就到這裡了,大夥晚安。