android 手势监听和多点触摸 笔记

一、笔记链接

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. 多点触控

android 手势监听和多点触摸 笔记_第1张图片


android 手势监听和多点触摸 笔记_第2张图片

为什么要使用掩码和位操作?

   很多人,我一开始也疑惑,为什么不从一开始就使用两个整型来存储动作和索引信息呢。这样不是更容易让人理解吗?不过看了API文档的解释之后,才明白这是为了节省内存。因为动作就那么几个,位置信息在高八位以上,还有24位的信息用来存储索引信息(2的24次方个点,绝对够用!)。因此只需要一个32位的整型就可以存储这两个信息。


你可能感兴趣的:(Android)