Android 实现滑动监听

jopen 5年前

主要是在要设置滑动监听的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:                    {                       //向左滑是你要做的事                    }                }