Android - GestureDetector.onGestureLister
2015-11-20 16:32
435 查看
GestureDetector.onGestureLister
该监听器用来监听手势变化。通过实现它的接口来监听不同的手势变化。如果你只是想监听一个比较简单地子集可以继承GestureDetector.SimpleOnGestureLister.
公共方法
// 用户轻触屏幕,有一个MotionEvent ACTION_DOWN触发 public boolean onDown(MotionEnvent event) { return true; }
// 用户按下屏幕,快速移动后松开,由1个MotionEvent ACTION_DOWN,多个ACTION_MOVE,1个ACTION_UP触发 // e1: 用户按下事件 // e2: 当前移动事件 // velocityX: 横向每秒移动速度 // velobityY: 纵向每秒移动速度 public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { return true; }
// 用户长按屏幕,有多个MotionEvent ACTION_DOWN触发 public void onLongPress(MotionEvent e) { }
// 用户按下屏幕并拖动,有1个ACTION_DOWN,多个ACTION_MOVE触发 // distanceX: X轴方向移动距离 // distancdY: Y轴方向移动距离 public void onSroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) { }
// 用户轻按屏幕,尚未松开或正在拖动,有1个MotionEvent ACTION_DOWN触发 public void onShowPress(MotionEvent e) { }
// 用户轻按后松开,有1个ACTION_UP触发 public boolan onSingleTapUp(MotionEvent e) { return ture; }
如何识别用户手势操作(事件来源)
public class MyGesture extends Activity implements OnTouchListener, onGestureListener{ private GesureDetector mGestureDetector; public MyGesture() { mGestureDetector = new GestureDetectore(this); } public void onCreate(Bundle savedInstanceState) { ... TextView tv = (TextView) findViewById(R.id.tv); tv.setOnTouchListener(this); tv.setFocusable(true); tv.setClickble(true); tv.setLongClickable(true); // 设置false后onLongPress()事件不生效 mGestureDetector.setIsLongPressEnable(true); } // 在onTouch()方法中,调用GestureDetector的onTouch()方法,将捕捉到的MotionEvent交给GestureDetector来分析是否有合适的callback函数来处理用户的手势 public boolean onTouch(View v, MotionEvent event){ return mGestureDetector.onTouchEvent(event); } ... ... }
用户操作事件
普通点击
onDown() -> onSingleTapUp()
长按不放松
onDown() -> onShowPress() -> onLongPress()
快速滑动
onDown() -> onScroll() -> onScroll() -> .... -> onFling()
当触发
onLongPress()后无法触发
onScroll()
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories