GestureDetector各個響應回調簡單說明

public class MainActivity extends AppCompatActivity {
    public static final String TAG = "MainActivity";
    GestureDetector mGestureDetector;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mGestureDetector = new GestureDetector(new GestureDetectorListener());

    }

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        return mGestureDetector.onTouchEvent(event);
    }
    //distance 向x正方向(右) 為負 ,向Y正反向(下)為負
    class GestureDetectorListener implements GestureDetector.OnGestureListener {

        @Override
        public boolean onDown(MotionEvent e) {
        //手指接觸屏幕,ACTION_DOWN
            Log.i(TAG,"onDown:e.getX()="+e.getX()+":e.getY()="+e.getY());
            return false;
        }

        @Override
        public void onShowPress(MotionEvent e) {
        //ACTION_DOWN 之后 LongPress之前  
            Log.i(TAG,"onShowPress:e.getX()="+e.getX()+":e.getY()="+e.getY());

        }

        @Override
        public boolean onSingleTapUp(MotionEvent e) {
        //ACTION_DOWN - ACTION_UP之后 單擊事件
            Log.i(TAG,"onSingleTapUp:e.getX()="+e.getX()+":e.getY()="+e.getY());
            return false;
        }

        @Override
        public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
        //ACTION_MOVE 滑動 
            Log.i(TAG,"onScroll:e1.getX()="+e1.getX()+":e1.getY()="+e1.getY()+"|||e2.getX()="+e2.getX()+":e2.getY()="+e2.getY()+"|||distanceX="+distanceX+":distanceY="+distanceY);
            return false;
        }

        @Override
        public void onLongPress(MotionEvent e) {
        //長點擊 觸發前會觸發shwoPress
            Log.i(TAG,"onLongPress:e.getX()="+e.getX()+":e.getY()="+e.getY());

        }

        @Override
        public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
        //滑動速度大于 MINIMUM_FLING_VELOCITY(默認50)調用。發生在onScroll之后
            Log.i(TAG,"onFling:e1.getX()="+e1.getX()+":e1.getY()="+e1.getY()+"|||e2.getX()="+e2.getX()+":e2.getY()="+e2.getY()+"|||distanceX="+velocityX+":velocityY="+velocityY);
            return false;
        }
    }
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容