Android 手势识别中的两个默认实现SimpleOnScaleGestureListener、SimpleOnGestureListener

  1. class ZoomGesture extends GestureDetector.SimpleOnGestureListener {//单手指操作  
  2.           
  3.         @Override //双击  
  4.         public boolean onDoubleTap(MotionEvent e) {  
  5.             System.out.println("--onDoubleTap---");  
  6.             return true;  
  7.         }  
  8.   
  9.         @Override  
  10.         public boolean onDoubleTapEvent(MotionEvent e) {  
  11.             System.out.println("--onDoubleTapEvent---");  
  12.             return super.onDoubleTapEvent(e);  
  13.         }  
  14.     }  
  15.       
  16.     //SimpleOnScaleGestureListener implements OnScaleGestureListener  
  17.     class ScaleGesture extends ScaleGestureDetector.SimpleOnScaleGestureListener {//双手指操作  
  18.   
  19.         @Override  
  20.         public boolean onScale(ScaleGestureDetector detector) {  
  21.             detector.getCurrentSpan();//两点间的距离跨度  
  22.             detector.getCurrentSpanX();//两点间的x距离  
  23.             detector.getCurrentSpanY();//两点间的y距离  
  24.             detector.getFocusX();       //  
  25.             detector.getFocusY();       //  
  26.             detector.getPreviousSpan(); //上次  
  27.             detector.getPreviousSpanX();//上次  
  28.             detector.getPreviousSpanY();//上次  
  29.             detector.getEventTime();    //当前事件的事件  
  30.             detector.getTimeDelta();    //两次事件间的时间差  
  31.             detector.getScaleFactor();  //与上次事件相比,得到的比例因子  
  32.   
  33.             return true;  
  34.         }  
  35.           
  36.     }  


创建手势探测器

  1. private GestureDetector gestureDetector; //手势探测器  
  2. private ScaleGestureDetector scaleGestureDetector;//比率手势探测器  
  3. ...  
  4. gestureDetector = new GestureDetector(context, new ZoomGesture());  
  5. scaleGestureDetector = new ScaleGestureDetector(context, new ScaleGesture());  
  6.   
  7. public boolean onTouchEvent(MotionEvent event) {  
  8.       //单点  
  9.     gestureDetector.onTouchEvent(event);  
  10.       //双点   
  11.     scaleGestureDetector.onTouchEvent(event);  
  12.     return true;  
  13. }  

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。