Android 右劃退出功能

在iphone手機中有右劃退出,但是在Android手機中卻很少見,現在手機屏幕越來越大,單手拿手機可能會按不到右下角的物理返回鍵,這時右劃退出就很方便了。

根據這個情況做了個右劃退出:

可以對單獨的Activity做一個右劃退出,也可以對整個 App應用做右劃退出,爲了讓整個應用實現右劃退出,可以讓所有的Activity繼承自己的BaseActivity,然後在BaseActivity中添加代碼:



  //爲了判斷當前是否處於滑動狀態,因爲有時候滑動會和點擊事件衝突
   public boolean isSlide=false;

    //手指上下滑動時的最小速度
    private static final int YSPEED_MIN = 1000;
    //手指向右滑動時的最小距離
    private static final int XDISTANCE_MIN = 100;
    //手指向上滑或下滑時的最小距離
    private static final int YDISTANCE_MIN = 100;
    //記錄手指按下時的橫座標。
    private float xDown;
    //記錄手指按下時的縱座標。
    private float yDown;
    //記錄手指移動時的橫座標。
    private float xMove;
    //記錄手指移動時的縱座標。
    private float yMove;
    //用於計算手指滑動的速度。
    private VelocityTracker mVelocityTracker;

//重寫的觸摸方法
@Override
    public boolean dispatchTouchEvent(MotionEvent event) {
        createVelocityTracker(event);
        switch (event.getAction()) {
            case MotionEvent.ACTION_DOWN:
                xDown = event.getRawX();
                yDown = event.getRawY();
                break;
            case MotionEvent.ACTION_MOVE:
                xMove = event.getRawX();
                yMove= event.getRawY();
                //滑動的距離
                int distanceX = (int) (xMove - xDown);
                int distanceY= (int) (yMove - yDown);
                //獲取順時速度
                int ySpeed = getScrollVelocity();
                //關閉Activity需滿足以下條件:
                //1.x軸滑動的距離>XDISTANCE_MIN
                //2.y軸滑動的距離在YDISTANCE_MIN範圍內
                //3.y軸上(即上下滑動的速度)<XSPEED_MIN,如果大於,則認爲用戶意圖是在上下滑動而非左滑結束Activity
                if(distanceX > XDISTANCE_MIN &&(distanceY<YDISTANCE_MIN&&distanceY>-YDISTANCE_MIN)&& ySpeed < YSPEED_MIN) {
                    isSlide=true;//判斷是否在滑動(true:在滑動不可點擊false:可點擊)
                    Utils.log("滑動"+isSlide);
                        finish();
                        overridePendingTransition(R.anim.anim_left_in, R.anim.anim_right_out);
                             }
                break;
            case MotionEvent.ACTION_UP:
                recycleVelocityTracker();
                break;
            default:
                break;
        }
        return super.dispatchTouchEvent(event);
    }


這樣右劃退出功能就能實現在整個App中,寫完收工。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章