Android手势操作识别监听类GestureDetector的使用
使用触屏手机、对触屏事件的处理是比不可少的、Android自带的消息无非按下、抬起、移动这几种、我们只需要简单重载onTouch或者设置触摸侦听器setOnTouchListener即可进行处理、很多时候、为了提高我们的APP的用户体验、有时候我们需要识别用户的手势、Android提供了一个手势监听类GestureDetector、GestureDetector使用很方便、提供了单击、双击、长按等操作的处理
实现OnTouchListener和OnGestureListener
class MainActivity extends Activity implements OnTouchListener, OnGestureListener {
onCreate方法
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); myLayout = (LinearLayout) findViewById(R.id.test_layout); // 为布局绑定监听 myLayout.setOnTouchListener(this); }
手势滑动时别调用onFling方法
@Override public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { //X轴的坐标位移大于FLING_MIN_DISTANCE //且移动速度大于FLING_MIN_VELOCITY个像素/秒 if (e1.getX() - e2.getX() > FLING_MIN_DISTANCE) { // 向左滑动 Toast.makeText(this, "向左滑动", TIME_OUT).show(); } else if (e2.getX() - e1.getX() > FLING_MIN_DISTANCE) { // 向右滑动 Toast.makeText(this, "向右滑动", TIME_OUT).show(); } return false; }
关于OnGestureListener更多的手势动作做出、在例子里面对这些方法也有说明
按下(onDown):刚刚手指接触到触摸屏的那一刹那、就是触的那一下
抛掷(onFling):手指在触摸屏上迅速移动、并松开的动作
长按(onLongPress):手指按在持续一段时间、并且没有松开
滚动(onScroll):手指在触摸屏上滑动
按住(onShowPress):手指按在触摸屏上、它的时间范围在按下起效、在长按之前
抬起(onSingleTapUp):手指离开触摸屏的那一刹那
下面说明一下这些方法的执行顺序吧
任何手势动作都会先执行一次按下(onDown)动作
长按(onLongPress):动作前一定会执行一次按住(onShowPress)动作
按住(onShowPress):动作和按下(onDown)动作之后都会执行一次抬起(onSingleTapUp)动作
长按(onLongPress):滚动(onScroll)和抛掷(onFling)动作之后都不会执行抬起(onSingleTapUp)动作
最后给大家贴上源代码下载链接: http://dwtedx.com/download.html?bdkey=s/1eQgVtYU 密码: 134a
推荐阅读
-
Android编程使用GestureDetector实现简单手势监听与处理的方法
-
Android编程使用GestureDetector实现简单手势监听与处理的方法
-
Android手势识别器GestureDetector使用详解
-
Android手势识别器GestureDetector使用详解
-
android使用gesturedetector手势识别示例分享
-
andorid 使用手势监听器GestureDetector遇到的不响应问题
-
android使用gesturedetector手势识别示例分享
-
andorid 使用手势监听器GestureDetector遇到的不响应问题
-
Android手势操作识别监听类GestureDetector的使用