Android 實現滑動監聽

jopen 10年前發布 | 70K 次閱讀 Android Android開發 移動開發

主要是在要設置滑動監聽的activity重寫以下幾個方法

@Override  
    public boolean onTouchEvent(MotionEvent me) {  
        return detector.onTouchEvent(me);  
    }  

    // 一旦觸摸屏按下,就馬上產生onDown事件  
    @Override  
    public boolean onDown(MotionEvent e) {  
        return false;  
    }  

    // 點擊了觸摸屏,但是沒有移動和彈起的動作onShowPress和onDown的區別在于 onDown是,  
    // 一旦觸摸屏按下,就馬上產生onDown事件,但是onShowPress是onDown事件產生后,  
    // 一段時間內,如果沒有移動鼠標和彈起事件,就認為是onShowPress事件。  
    @Override  
    public void onShowPress(MotionEvent e) {  
    }  

    // 輕擊觸摸屏后,彈起。如果這個過程中產onLongPress、onScroll和onFling事件,  
    // 就不會 產生onSingleTapUp事件。  
    @Override  
    public boolean onSingleTapUp(MotionEvent e) {  
        return false;  
    }  

    // 當手在屏幕上滑動離開屏幕時觸發,參數跟onFling一樣(注意兩者的區別)  
    @Override  
    public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,  
            float distanceY) {  
        return false;  
    }  

    // 長按屏幕時觸發  
    @Override  
    public void onLongPress(MotionEvent e) {  
    }  

    // 當手在屏幕上滑動但手未離開屏幕時觸發  
    @Override  
    public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,  
            float velocityY) {  
        float x = 0;  
        x = e2.getX() - e1.getX();  
        //float y = e2.getY() - e1.getY();  

        if (x > 0)   
        {  
            doResult(RIGHT);  
        }  
        else if (x < 0)   
        {  
            doResult(LEFT);  
        }  
        return true;  
    }  

    private void doResult(int action)   
    {  
        DatabaseHelper helper = new DatabaseHelper(SlideWindow.this);  
        SQLiteDatabase db = helper.getReadableDatabase();  
        Cursor cursor = db.rawQuery("select * from dict", null);  
        if(cursor.moveToFirst())  
        {//這里的if防止數據庫中沒數據的時候的滑動屏幕造成強退  
            switch (action)   
            {  
                case RIGHT:  
                {     
                 //向右滑時你要干的事  
                }  

                case LEFT:  
                {     
                //向左滑是你要做的事  
                }  
            }  
        

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!