在android中多指触控通过OnTouchListener监听器监听,触控事件在onTouch方法中分析处理。
在单指触控中,我们常用的三个方法ACTION_DOWN、ACTION_UP、ACTION_MOVE,在多指触控中也会用到,不过用法稍有不同。
多指触控中多了ACTION_POINTER_DOWN、ACTION_POINTER_UP两种情况,这几个情况的触发用法在下面源码中标注:
switch (event.getAction() &MotionEvent.ACTION_MASK) {case MotionEvent.ACTION_DOWN: //第一根手指按下时触发
mode = 1;break;case MotionEvent.ACTION_POINTER_DOWN: //第二根或以上的手指按下时触发
mode += 1;break;case MotionEvent.ACTION_UP: //所有手指都离开时触发
mode = 0;break;case MotionEvent.ACTION_POINTER_UP: //当有两根及以上手指触碰屏幕,其一离开时触发
mode -= 1;break;case MotionEvent.ACTION_MOVE: //此事件非常灵敏,只要有手指触碰屏幕,便会一直触发
if (mode >= 2) {
}break;
}
触碰的手指数可用event.getPointerCount()方法获取。
放大缩小:
此功能可通过手指之间的前后距离倍数来确定放大缩小的倍数,不这样稍微麻烦了点,我们可以用ScaleGestureDetector来实现:
sca