Android监测手指上下左右滑动屏幕
16lz
2021-01-23
在开发android程序时,有时会需要监测手指滑动屏幕,当手指朝上下左右不同方向滑动时做出不同的响应,那怎么去实现呢?
利用Android提供的手势监测器就可以很方便的实现,直接上代码(已测试通过)
?
publicclass CbMainActivity extendsActivity implements android.view.GestureDetector.OnGestureListener{ //定义手势检测器实例 GestureDetector detector; @Override protectedvoid onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.cb_main); //创建手势检测器 detector = newGestureDetector(this,this); } //将该activity上的触碰事件交给GestureDetector处理 publicboolean onTouchEvent(MotionEvent me){ returndetector.onTouchEvent(me); } @Override publicboolean onDown(MotionEvent arg0) { returnfalse; } /** * 滑屏监测 * */ @Override publicboolean onFling(MotionEvent e1, MotionEvent e2, floatvelocityX, floatvelocityY) { floatminMove = 120; //最小滑动距离 floatminVelocity = 0; //最小滑动速度 floatbeginX = e1.getX(); floatendX = e2.getX(); floatbeginY = e1.getY(); floatendY = e2.getY(); if(beginX-endX>minMove&&Math.abs(velocityX)>minVelocity){ //左滑 Toast.makeText(this,velocityX+"左滑",Toast.LENGTH_SHORT).show(); }elseif(endX-beginX>minMove&&Math.abs(velocityX)>minVelocity){ //右滑 Toast.makeText(this,velocityX+"右滑",Toast.LENGTH_SHORT).show(); }elseif(beginY-endY>minMove&&Math.abs(velocityY)>minVelocity){ //上滑 Toast.makeText(this,velocityX+"上滑",Toast.LENGTH_SHORT).show(); }elseif(endY-beginY>minMove&&Math.abs(velocityY)>minVelocity){ //下滑 Toast.makeText(this,velocityX+"下滑",Toast.LENGTH_SHORT).show(); } returnfalse; } @Override publicvoid onShowPress(MotionEvent arg0) { // TODO Auto-generated method stub } @Override publicboolean onSingleTapUp(MotionEvent arg0) { // TODO Auto-generated method stub returnfalse; } @Override publicvoid onLongPress(MotionEvent arg0) { // TODO Auto-generated method stub } @Override publicboolean onScroll(MotionEvent e1, MotionEvent e2, floatvelocityX, floatvelocityY) { returnfalse; } }
更多相关文章
- android手势翻页效果【转】
- android 手势识别(一)
- Android 侦测手势的内部类
- GestureDetector.OnGestureListener 触摸手势用法
- TextView 限制最大行数、最小行数、字数超过“...”表示
- Android手势库
- 我要一步一步往上爬——Android应用实例笔记(1)—手势