Android多触点总结
文章部分内容参考:
http://blog.csdn.net/barryhappy/article/details/7392326
总结:
1. event.getX()可以得到x的坐标,里面的参数0表示最开始的触摸;参数为1时表示第二个触摸点;
2. MotionEvent.ACTION_DOWN:在第一个点被按下时触发
3. MotionEvent.ACTION_UP:当屏幕上唯一的点被放开时触发
4. 如果食指先触摸屏幕,会触发ACTION_DOWN;然后抬起,会触发ACTION_UP;如果食指先触摸屏幕,中指再触摸屏幕,则中指会触发ACTION_POINTER_2_DOWN;此后抬起的手指就会触发ACTION_POINTER_2_UP(在本例中,不管是食指还是中指抬起);接着,可能再会按下和抬起,触发的则是ACTION_POINTER_1_DOWN和ACTION_POINTER_1_DOWN。
@SuppressWarnings("deprecation")
public boolean onTouchEvent(MotionEvent event) {
int action = event.getAction();
if (event.getPointerCount() == 2)
{
x1 = event.getX(1);
y1 = event.getY(1);
}
x0 = event.getX(0);
y0 = event.getY(0);
switch (action) {
case MotionEvent.ACTION_DOWN:
HandleDown(getArea(x0, y0));
break;
case MotionEvent.ACTION_UP:
HandleUp(getArea(x0, y0));
break;
//按下两个地方时,先抬起第1个,然后再按下,才会触发 ACTION_POINTER_1_DOWN
case MotionEvent.ACTION_POINTER_1_DOWN:
HandleDown(getArea(x0, y0));
break;
case MotionEvent.ACTION_POINTER_1_UP:
HandleUp(getArea(x0, y0));
break;
case MotionEvent.ACTION_POINTER_2_DOWN:
HandleDown(getArea(x1, y1));
break;
case MotionEvent.ACTION_POINTER_2_UP:
HandleUp(getArea(x1, y1));
break;
}
return super.onTouchEvent(event);
}
Android多触点总结的更多相关文章
- Android学习之多触点滑动
知识点: 1.对矩阵:Matrix类熟悉,链接:https://blog.csdn.net/jdsjlzx/article/details/52741445 2.MotionEvent详解:https ...
- 菜鸟进阶Android Touch事件传递(四)
尊重他人劳动成果,转载请说明出处:http://blog.csdn.net/bingospunky/article/details/44343477 在该系列文章第四篇.我准备介绍一下viewpage ...
- Android Scroll具体解释(二):OverScroller实战
作者: ztelur 联系方式:segmentfault,csdn.github 本文仅供个人学习,不用于不论什么形式商业目的,转载请注明原作者.文章来源.链接,版权归原文作者全部. 本文是andr ...
- 【原】Android热更新开源项目Tinker源码解析系列之三:so热更新
本系列将从以下三个方面对Tinker进行源码解析: Android热更新开源项目Tinker源码解析系列之一:Dex热更新 Android热更新开源项目Tinker源码解析系列之二:资源文件热更新 A ...
- 配置android sdk 环境
1:下载adnroid sdk安装包 官方下载地址无法打开,没有vpn,使用下面这个地址下载,地址:http://www.android-studio.org/
- Android SwipeRefreshLayout 下拉刷新——Hi_博客 Android App 开发笔记
以前写下拉刷新 感觉好费劲,要判断ListView是否滚到顶部,还要加载头布局,还要控制 头布局的状态,等等一大堆.感觉麻烦死了.今天学习了SwipeRefreshLayout 的用法,来分享一下,有 ...
- Android Studio配置 AndroidAnnotations——Hi_博客 Android App 开发笔记
以前用Eclicps 用习惯了现在 想学学 用Android Studio 两天的钻研终于 在我电脑上装了一个Android Studio 并完成了AndroidAnnotations 的配置. An ...
- Android请求网络共通类——Hi_博客 Android App 开发笔记
今天 ,来分享一下 ,一个博客App的开发过程,以前也没开发过这种类型App 的经验,求大神们轻点喷. 首先我们要创建一个Andriod 项目 因为要从网络请求数据所以我们先来一个请求网络的共通类. ...
- 【原】Android热更新开源项目Tinker源码解析系列之一:Dex热更新
[原]Android热更新开源项目Tinker源码解析系列之一:Dex热更新 Tinker是微信的第一个开源项目,主要用于安卓应用bug的热修复和功能的迭代. Tinker github地址:http ...
随机推荐
- 20201103_notepad++修改文件保存的默认格式
修改notepad++文件保存的默认格式 点开 设置 ==> 首选项 1. 修改默认语言为要默认保存的文件格式 2. 将默认目录下的使用新样式对话框取消勾选
- 聊聊Go代码覆盖率技术与最佳实践
"聊点干货" 覆盖率技术基础 截止到Go1.15.2以前,关于覆盖率技术底层实现,以下知识点您应该知道: go语言采用的是插桩源码的形式,而不是待二进制执行时再去设置breakpo ...
- Spring AOP实现注解式的Mybatis多数据源切换
一.为什么要使用多数据源切换? 多数据源切换是为了满足什么业务场景?正常情况下,一个微服务或者说一个WEB项目,在使用Mybatis作为数据库链接和操作框架的情况下通常只需要构建一个系统库,在该系统库 ...
- 【Kata Daily 190924】Difference of Volumes of Cuboids(长方体的体积差)
题目: In this simple exercise, you will create a program that will take two lists of integers, a and b ...
- ABP框架中一对多,多对多关系的处理以及功能界面的处理(1)
在我们开发业务的时候,一般数据库表都有相关的关系,除了单独表外,一般还包括一对多.多对多等常见的关系,在实际开发过程中,需要结合系统框架做对应的处理,本篇随笔介绍基于ABP框架对EF实体.DTO关系的 ...
- Linux的内部命令和外部命令
为了提高系统运行效率,将经常使用的轻量的命令在系统启动时一并加载这些命令到内存中供shell随时调用,这部分命令即为内部命令.反之,只有当被调用时才会被硬盘加载的这部分命令即为外部命令. 内部命令实际 ...
- 性能问题,AWR High Event enq: US - contention
1.1问题现象 应用反馈业务执行SQL响应超时,需要数据库排除DB是否存在问题,创建AWR观察到top event 新增enq: US - contention ??? 1.2问题分析 1) DB ...
- JS之DOM(一)
一.DOM简介 什么是DOM?简单地说,DOM是是针对HTML和XML文档的一个API,一套对文档的内容进行抽象和概念化的方法. 学习过ORM的同学可能知道ORM是将数据库中的表映射到类,建立一个表和 ...
- xenserver使用ceph的rbd的方法
首先安装的xenserver6.5的环境,看到有地方有提到这个上面可以安装rbd的支持,网上有一种方式是libvirt+kvm方式,因为ceph对libviet是原生支持的,但是xenserver底层 ...
- DjangoWeb _ 登录页开发test
1.数据库设计 user表 --id 自增 --username varchar(20) --password varchar(25) --add_time datetime 2.数据操作 新增 修改 ...