安卓学习(二) 手势识别
摘要: 用户与手机交互的方式与PC不一样,没有鼠标,键盘,主要是依靠手势,因此手势的学习对于android开发很必要。本文主要介绍关于android手势识别的内容,首先是系统内置的手势识别,然后是自定义的手势识别,通过该文的学习会对android识别各种手势有一个很好的理解。
关键字 手势识别,内置手势,自定义手势
1. 内置手势识别
当用户与手机交互时,会触发onTouchEvent方法并传递一个MotionEvent对象,该对象包含了用户与屏幕交互的数据,包括触碰屏幕的位置,动作类型等。我们可以用过手动解析动作类型也可以用一个GestureDetectorCompat类帮我们解析动作类型,然后调用对应的方法。下面是识别内置手势的基本步骤:
- 实现GestureDector.OnGestureListener中各种手势的实现函数onFiling(),onDown(),onScroll(),onShowPress(),onSingleTapUp(),onLangPress(),如果要支持双击的话,还需要实现GestureDector.OnDoubleTapListener中的onDoubleTap()方法,我们可以直接让Activity实现这两个接口,或者定义一个新的类来实现这些接口。
- 创建一个GestureDetectorCompat对象,并用是上面的监听器类初始化它
- 实现onTouchEvent方法,在该方法中调用GestureDetectorCompat对象的onTouchEvent方法
结合上面的步骤可以看下下面的代码:
public class MainActivity extends AppCompatActivity implements GestureDetector.OnGestureListener, GestureDetector.OnDoubleTapListener{
private TextView textView=null;
//define the GestureDetectorCompat object
private GestureDetectorCompat gDetector = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = (TextView)findViewById(R.id.textView);
//initial the GestureDetectorCompat object using the object which implements whose two interface.
this.gDetector = new GestureDetectorCompat(this,this);
gDetector.setOnDoubleTapListener(this);
}
@Override
public boolean