一、笔记链接
1. Android手势监听
Android上的手势监听实现 https://www.jianshu.com/p/095e81f21e07
触摸事件与手势监听--Android GestureDetector详解 http://blog.csdn.net/hpk1994/article/details/51224228
Android之ScaleGestureDetector(缩放手势检测) http://blog.csdn.net/yuzhiboyi/article/details/7696689
2. 多点触摸
安卓自定义View进阶《十六》——多点触控详解 https://www.jianshu.com/p/cafedd319512
Android多点触控之——MotionEvent(触控事件) http://blog.csdn.net/woshimalingyi/article/details/50383578
二、简记
1. 手势监听
GestureDector类包含以下内容:
OnGestureListener接口
OnDoubleTapListener双击接口
SimpleOnGestureListener 类(实现了类内的三个接口)
onTouchEvent()方法
ScaleGestureDetector类包含以下内容:
OnScaleGestureListener接口
SimpleOnScaleGestureListener接口
onTouchEvent()方法
class MyGestureListener implements 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) {
return false;
}
@Override
public void onLongPress(MotionEvent e) {
}
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
return false;
}
}
public interface OnScaleGestureListener {
public boolean onScale(ScaleGestureDetector detector);
public boolean onScaleBegin(ScaleGestureDetector detector);
public void onScaleEnd(ScaleGestureDetector detector);
}
2. 多点触控
为什么要使用掩码和位操作?
很多人,我一开始也疑惑,为什么不从一开始就使用两个整型来存储动作和索引信息呢。这样不是更容易让人理解吗?不过看了API文档的解释之后,才明白这是为了节省内存。因为动作就那么几个,位置信息在高八位以上,还有24位的信息用来存储索引信息(2的24次方个点,绝对够用!)。因此只需要一个32位的整型就可以存储这两个信息。