GestureDetector
来源:互联网 发布:小强呼死你软件安卓版 编辑:程序博客网 时间:2024/06/05 10:23
1,触屏一刹那,触发MotionEvent事件
2,被OntouchListener 监听,在onTouch()中获取得到MotionEvent对象
3,GestureDetector转发MotionEvent对象至OnGestureListener
GestureDetector.onTouchEvent(event);
4,OnGestureListener获取该对象,根据该对象封装的信息做出合适的反馈。
class myGestureLis ener extends SimpleOnGestureListener{ onFling(...){ if(e1.getX() - e2.getX()>50){ Toash.("xxxx"); } }}
GestureDetector myGestureDetector;class MaiActivity extends Activity{ onCreate(...){ myGestureDetector = new GestureDetector(new myGestureLis()); img.setOnTouchListener(new OnTouchListener(){ // onTouch(View){ myGestureDetector.onTouchEvent(event); } }); }}
or:
detector = new GestureDetector(context, new GestureDetector.OnGestureListener() { @Override public boolean onDown(MotionEvent e) { return false; } @Override public void onShowPress(MotionEvent e) { } @Override public boolean onSingleTapUp(MotionEvent e) { return false; } /** * 响应手指在屏幕上的滑动事件。 */ @Override public boolean onScroll (MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) { //移动屏幕 System.out.println("zuobiao " + distanceX); /** * 移动当前view的内容 * disX表示移动Y的距离 * disY表示移动y的距离 */ scrollBy((int) distanceX, 0); /** * 将当前视图的基准点移动到 某个点 上。 * x 水平方向x的坐标,y * scrollTo(x,y) */ return false; } @Override public void onLongPress(MotionEvent e) { //长点击的时候。 } @Override public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { return false; }});
GestureOverlayView
<android.gesture.GestureOverlayView android:id="@+id/gestureOverlayView" width; height; > <><><><>....</></></> <android.gesture.GestureOverlayView/>
GestureOverlayView gestureOverlayView;class Mainactivity extends Activity{ onCreate(...){ gestureOverlayView = findByID(R...); //从资源中将手势库文件加载进来了。 GestureLibrary library = GestureLibraries.fromRawRessource(this,R.raw.gesture); library.load(); gestureOverlayView.addOnGesturePerformedListener(new OnGesturePerFormedListener(){ @Override public void onGesturePerformed(GestureOverlayVfiew overlay,Gesture gesture){ //读出手势库文件的内容,识别手势 ArrayList<Prediction> myGesture = library.recognize(gesture); Prediction prediction = myGesture.get(0); if(predction.score >= 5.0){ if(predction .name.equals("next");){ //TODO 执行的操作 } }else{ Toash.("没有该手势"); } } }); }}
一些常见的XML属性
Android:eventsInterceptionEnabled 定义当手势已经被识别出来了,是否拦截该手势的动作Android:fadeDuration 当用户画完, 手势效果淡出的时间Android:fadeEnabled 用户画完之后,手势效果淡出的时间Android:gestureColor 手势的颜色Android:gestureStrokeType 画笔的类型Android:gestureStokeWidth 笔画的粗细
0 0
- GestureDetector
- GestureDetector
- GestureDetector
- GestureDetector
- GestureDetector
- GestureDetector
- GestureDetector
- GestureDetector
- GestureDetector
- GestureDetector
- GestureDetector
- GestureDetector
- GestureDetector
- 浅析GestureDetector
- Android GestureDetector
- 浅析GestureDetector
- 浅析GestureDetector
- GestureDetector用法
- trie树(字典树)java实现
- setContentView()调用SurfaceView布局文件出错的解决方法
- [swift学习之五]类练习
- Android布局常见异常错误
- 调用android系统相机拍照并保存
- GestureDetector
- ECLIPSE 设置 UTF8
- QTreeView三态checkbox代码
- Picasso创建圆形图像
- 添加附件,通过文件管理器
- Android 手势检测实战 打造支持缩放平移的图片预览效果(上)
- PHP自学no00014预定义常量
- 网页迁移方案
- dshow来控制摄像头旋转