Android:如何检测捏合和捏合?

时间:2016-06-01 10:36:23

标签: android

我尝试使用ScaleGestureDetector检测捏合和捏合。这就是我想要做的事情。

view.setOnTouchListener(new View.OnTouchListener() {
        final ViewConfiguration vc = ViewConfiguration.get(mContext);
        final int minTouchDistance = vc.getScaledTouchSlop();

        private GestureDetector gestureDetector = new GestureDetector(mContext, new GestureListener());
        ScaleGestureDetector scaleGestureDetector = new ScaleGestureDetector(mContext, new ScaleGestureDetector.OnScaleGestureListener() {
            @Override
            public boolean onScale(ScaleGestureDetector detector) {
                double scaleFactor = detector.getScaleFactor();
                Log.d(TAG, "Scale gesture detected");
                if (1.0f > scaleFactor) {
                    Log.d("ScaleFactor", "Pinch Dection");
                } else  {
                    Log.d("onScaleEnd", "Zoom Dection");
                }
                return false;
            }

            @Override
            public boolean onScaleBegin(ScaleGestureDetector detector) {
                return false;
            }

            @Override
            public void onScaleEnd(ScaleGestureDetector detector) {

            }
        });
       public boolean onTouch(View v, MotionEvent event) {
            int index = event.getActionIndex();
            int pointerId = event.getPointerId(index);
            Point p2;
            scaleGestureDetector.onTouchEvent(event);
            gestureDetector.onTouchEvent(event);
            //Rest of the code
             ......
     }

GestureDetector工作正常,但ScaleGesureDetector未检测到捏合。难道我做错了什么?我想检测捏进和出手势。还有其他办法吗?

0 个答案:

没有答案