GestureDetector 手勢的檢測

GestureDetector

手勢檢查,用于輔助檢查用戶的單擊、滑動、長按、雙擊等行為。
首先,需要創(chuàng)建一個GestureDetector對象并實(shí)現(xiàn)OnGestureListener的接口,如下代碼塊所示:

GestureDetector gestureDetector = new GestureDetector(this,new GestureDetector.OnGestureListener() {
            @Override
            public boolean onDown(MotionEvent e) {
                Log.d(TAG, "onDown: 手指輕輕觸摸屏幕的一瞬間");
                return false;
            }

            @Override
            public void onShowPress(MotionEvent e) {
                Log.d(TAG, "onShowPress: 手指輕輕觸摸屏幕,尚未松開或拖動");
            }

            @Override
            public boolean onSingleTapUp(MotionEvent e) {
                Log.d(TAG, "onSingleTapUp: 手指松開");
                return false;
            }

            @Override
            public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
                Log.d(TAG, "onScroll: 手指按下屏幕并拖動");
                Log.d(TAG, "onScroll: "+distanceX);
                Log.d(TAG, "onScroll: "+distanceX);
                return false;
            }

            @Override
            public void onLongPress(MotionEvent e) {
                Log.d(TAG, "onLongPress: 長按");
            }

            @Override
            public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
                Log.d(TAG, "onFling: 按下屏幕,快速滑動后松開");
                return false;
            }
        });
//解決長按屏幕后無法拖動的現(xiàn)象
gestureDetector .setIsLongpressEnabled(false);

手勢監(jiān)聽的過程有了,但是我們還需要去接管目標(biāo)View的onTouchEvent方法,在待監(jiān)聽View的onTouchEvent方法中添加如下代碼:

   @Override
    public boolean onTouchEvent(MotionEvent event) {
        return gestureDetector.onTouchEvent(event);

實(shí)際開發(fā)過程中,可以不適用GestureDetector,完全可以在View 的onTouchEvent方法中實(shí)現(xiàn)所需監(jiān)聽,這個根據(jù)個人喜好而定。
tips:如果只是監(jiān)聽滑動相關(guān)的,建議在onTouchEvent中實(shí)現(xiàn),如果需要監(jiān)聽雙擊這種行為的話,就適用GestureDetector。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容