Android 手势识别中的两个默认实现SimpleOnScaleGestureListener、SimpleOnGestureListener
- 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;
- }
- }
创建手势探测器
- 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;
- }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。