Android 手勢識別中的兩個預設實現SimpleOnScaleGestureListener、SimpleOnGestureListener,ongesturelistener
- class ZoomGesture extends GestureDetector.SimpleOnGestureListener {//單手指操作
-
- @Override //雙擊
- public boolean onDoubleTap(MotionEvent e) {
- System.out.println("--onDoubleTap---");
- return true;
- }
-
- @Override
- public boolean onDoubleTapEvent(MotionEvent e) {
- System.out.println("--onDoubleTapEvent---");
- return super.onDoubleTapEvent(e);
- }
- }
-
- //SimpleOnScaleGestureListener implements OnScaleGestureListener
- class ScaleGesture extends ScaleGestureDetector.SimpleOnScaleGestureListener {//雙手指操作
-
- @Override
- public boolean onScale(ScaleGestureDetector detector) {
- detector.getCurrentSpan();//兩點間的距離跨度
- detector.getCurrentSpanX();//兩點間的x距離
- detector.getCurrentSpanY();//兩點間的y距離
- detector.getFocusX(); //
- detector.getFocusY(); //
- detector.getPreviousSpan(); //上次
- detector.getPreviousSpanX();//上次
- detector.getPreviousSpanY();//上次
- detector.getEventTime(); //當前事件的事件
- detector.getTimeDelta(); //兩次事件間的時間差
- detector.getScaleFactor(); //與上次事件相比,得到的比例因素
-
- return true;
- }
-
- }
建立手勢探測器
[java] view plaincopyprint?
- private GestureDetector gestureDetector; //手勢探測器
- private ScaleGestureDetector scaleGestureDetector;//比率手勢探測器
- ...
- gestureDetector = new GestureDetector(context, new ZoomGesture());
- scaleGestureDetector = new ScaleGestureDetector(context, new ScaleGesture());
-
- public boolean onTouchEvent(MotionEvent event) {
- //單點
- gestureDetector.onTouchEvent(event);
- //雙點
- scaleGestureDetector.onTouchEvent(event);
- return true;
- }