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