WEB开发网
开发学院手机开发Android 开发 简述 Android 触摸屏手势识别 阅读

简述 Android 触摸屏手势识别

 2010-04-20 06:02:00 来源:WEB开发网   
核心提示:我们给TextView的实例tv设定了一个onTouchListener,因为GestureTest类实现了OnTouchListener 接口,简述 Android 触摸屏手势识别(2),所以简单的给一个this作为参数即可,onTouch方法则是实现了OnTouchListener中的抽象方法,我已经把每一个方法代

我们给TextView的实例tv设定了一个onTouchListener,因为GestureTest类实现了OnTouchListener 接口,所以简单的给一个this作为参数即可。onTouch方法则是实现了OnTouchListener中的抽象方法,我们只要在这里添加逻辑代码即可在用户触摸屏幕时做出响应,就像我们这里所做的——打出一个提示信息。

这里,我们可以通过MotionEvent的getAction()方法来获取Touch事件的类型,包括 ACTION_DOWN, ACTION_MOVE, ACTION_UP, 和ACTION_CANCEL。ACTION_DOWN是指按下触摸屏,ACTION_MOVE是指按下触摸屏后移动受力点,ACTION_UP则是指松开触摸屏,ACTION_CANCEL不会由用户直接触发(所以不在今天的讨论范围,请参考ViewGroup.onInterceptTouchEvent(MotionEvent))。借助对于用户不同操作的判断,结合getRawX()、getRawY()、getX()和getY()等方法来获取坐标后,我们可以实现诸如拖动某一个按钮,拖动滚动条等功能。待机可以看看MotionEvent类的文档,另外也可以看考TouchPaint例子。

回到今天所要说的重点,当我们捕捉到Touch操作的时候,如何识别出用户的Gesture?这里我们需要GestureDetector.OnGestureListener接口的帮助,于是我们的GestureTest类就变成了这个样子。

1.public class GestureTest extends Activity implements OnTouchListener,

2. OnGestureListener {

3....

4.}

随后,在onTouch()方法中,我们调用GestureDetector的onTouchEvent()方法,将捕捉到的MotionEvent交给 GestureDetector 来分析是否有合适的callback函数来处理用户的手势。

1.@Override

2. public boolean onTouch(View v, MotionEvent event) {

3. // OnGestureListener will analyzes the given motion event

4. return mGestureDetector.onTouchEvent(event);

5. }

接下来,我们实现了以下6个抽象方法,其中最有用的当然是onFling()、onScroll()和onLongPress()了。我已经把每一个方法代表的手势的意思写在了注释里,大家看一下就明白了。

01.// 用户轻触触摸屏,由1个MotionEvent ACTION_DOWN触发

02. @Override

03. public boolean onDown(MotionEvent e) {

上一页  1 2 3 4  下一页

Tags:简述 Android 触摸屏

编辑录入:coldstar [复制链接] [打 印]
赞助商链接