Android 多点触控
2016-04-21 10:24
513 查看
查看MotionEvent源代码:
public static final int ACTION_DOWN = 0;
public static final int ACTION_UP = 1;
public static final int ACTION_MOVE = 2;
public static final int ACTION_CANCEL = 3;
public static final int ACTION_OUTSIDE = 4;
public static final int ACTION_POINTER_DOWN = 5;
public static final int ACTION_POINTER_UP = 6;
public static final int ACTION_HOVER_MOVE = 7;
public static final int ACTION_SCROLL = 8;
public static final int ACTION_HOVER_ENTER = 9;
public static final int ACTION_HOVER_EXIT = 10;
由以上看出动作变量为action的低8位信息。
public static final int ACTION_POINTER_INDEX_MASK = 0xff00;
有以上可以看出使用
int action = event.getAction(); 单点触控时有效
int action1 = event.getActionMasked(); 两者的区别。只有使用后者才能在多点触控时也获取到正确的状态。
int index = event.getActionIndex(); 获取到当前的触控id
int id=event.getPointerId(1);
int activeId=event.findPointerIndex(id);
public static final int ACTION_DOWN = 0;
public static final int ACTION_UP = 1;
public static final int ACTION_MOVE = 2;
public static final int ACTION_CANCEL = 3;
public static final int ACTION_OUTSIDE = 4;
public static final int ACTION_POINTER_DOWN = 5;
public static final int ACTION_POINTER_UP = 6;
public static final int ACTION_HOVER_MOVE = 7;
public static final int ACTION_SCROLL = 8;
public static final int ACTION_HOVER_ENTER = 9;
public static final int ACTION_HOVER_EXIT = 10;
由以上看出动作变量为action的低8位信息。
public static final int ACTION_POINTER_INDEX_MASK = 0xff00;
public static final int ACTION_POINTER_INDEX_SHIFT = 8; public static final int ACTION_POINTER_1_DOWN = ACTION_POINTER_DOWN | 0x0000; public static final int ACTION_POINTER_2_DOWN = ACTION_POINTER_DOWN | 0x0100; public static final int ACTION_POINTER_3_DOWN = ACTION_POINTER_DOWN | 0x0200; public static final int ACTION_POINTER_1_UP = ACTION_POINTER_UP | 0x0000; public static final int ACTION_POINTER_2_UP = ACTION_POINTER_UP | 0x0100; @Deprecated public static final int ACTION_POINTER_3_UP = ACTION_POINTER_UP | 0x0200; @Deprecated public static final int ACTION_POINTER_ID_MASK = 0xff00; @Deprecated public static final int ACTION_POINTER_ID_SHIFT = 8;
有以上可以看出使用
int action = event.getAction(); 单点触控时有效
int action1 = event.getActionMasked(); 两者的区别。只有使用后者才能在多点触控时也获取到正确的状态。
int index = event.getActionIndex(); 获取到当前的触控id
public final int getActionIndex() { return (nativeGetAction(mNativePtr) & ACTION_POINTER_INDEX_MASK) >> ACTION_POINTER_INDEX_SHIFT; }
int id=event.getPointerId(1);
int activeId=event.findPointerIndex(id);
相关文章推荐
- Android对Bitmap处理的工具类
- Android调用手机中的应用市场,实现评分功能
- android 系统提示对话框(AlertDialog)的使用
- Android Overlay机制
- Android数据库——LitePal
- Android事件分发机制(二)
- Android.os包中一些类的使用
- Linphone-android 3.9.1 编译
- android源码解析之(十二)-->系统启动并解析Manifest的流程
- android studio 编译错误 :Duplicate failed copide in APK META-INF/NOTICE.txt解决办法
- Android、iOS支持的音频格式
- android 代码设置editText的 drableRight和drableRight的点击事件
- android 布局间设置分隔线
- Android中XML文件的读写
- Android开发中libs包下面的mips、armeabi、armeabi-v7a和x86
- adb常用命令和logcat使用
- android 常见问题
- android 常见问题汇总
- Android Bitmap换背景颜色
- android jni开发