Android多点触控技术跟Linux输入子系统紧密相关。本文将从应用的角度说明Android多点触控技术的接口和应用。

一、多点触控场景分析

网络上有关Android多点触控技术的文章多见于两点拉伸进行图片放大缩小。对于,这个场景有两个特点:

1)两点,而不是很多其它点;

2)对于触点的移动事件(MotionEvent.ACTION_MOVE)。只须要计算两点的距离,进而推断两个点之间的距离是变大还是缩小,实现图片放大或者缩小。

这个过程并不须要记录这两个点和之前的两个点的关系。这样讲比較抽象。我们能够用一个样例来解释。

例如以下图:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />

如果一个人拿着5支笔同一时候写linux这个单词的一个字母。那就得知道当前的5个触点里面的每一个触点和之前的触点的相应关系,才干做到一支笔画一个字母。

这个场景基本上能够覆盖到android多点触控的全部接口的应用了。我们先来介绍接口。最后给出多点触控的应用框架。它理论上能够处理非常多点的触控。而不不过2点或者5点。

二、Android多点触控接口

1.onTouchEvent

重载Activity的onTouchEvent接口以处理触控信息。

public booleanonTouchEvent(MotionEvent event)

2.event.getAction

该接口与MotionEvent.ACTION_MASK想与能够得到触控按键的类型,如按下、弹起和移动。

1)MotionEvent.ACTION_DOWN 第一个触控点按下。

2)MotionEvent.ACTION_POINTER_DOWN 屏幕上已经有1个或者多个触点的情况下再按下一个点。

3)MotionEvent.ACTION_UP 最后一个触点弹起

4)MotionEvent.ACTION_POINTER_UP 非最后一个触点弹起。

5)MotionEvent.ACTION_MOVE 触点移动事件

3.event.getActionIndex()

获得触控点的索引,其代表触控点在全部触控点中的序号。

比如A、B、C三个点依次按下,那么分别相应的index是0、1、2。如果B点弹起。此时A、C的index将是0、1。

这时假如新按一个点D,那A、C、D的index将是0、1、2。

从中我们发现,C点的index会由于其它点的弹起而变化。

所以不能用该值来跟踪同一个点。

4.event.getPointerId(actionIndex)

通过触控点索引来获得触控点的唯一标识。其自触点被按下開始,直到弹起。该值都不会发生变化,其是触点的一个身份ID。比如A、B、C三个点依次按下,那么分别相应的ID是0、1、2。

如果B点弹起,此时A、C的ID依旧是0、2。这时假如新按一个点D,那A、C、D的ID将是0、2、1。新增的触点的ID会从0開始递增。发现未用值即拿来用。

5.获得触点坐标

event.getX(actionIndex)、event.getY(actionIndex)获得触点距离所属的View的坐标。event.getRawX(actionIndex)、event.getRawY(actionIndex)获得触点距离屏幕左上角的坐标。

三、多点触控应用框架

很多其它嵌入式Linux和物联网原创技术分享请关注微信公众号:嵌入式企鹅圈

[yueqian_scut]Android多点触控技术和应用框架的更多相关文章

  1. Android多点触控技术

    1 简介 Android多点触控在本质上需要LCD驱动和程序本身设计上支持,目前市面上HTC.Motorola和Samsung等知名厂商只要使用电容屏触控原理的手机均可以支持多点触控Multitouc ...

  2. Android多点触控技术实战,自由地对图片进行缩放和移动

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/11100327 在上一篇文章中我带着大家一起实现了Android瀑布流照片墙的效果, ...

  3. Android多点触控技术,实现对图片的放大缩小平移,惯性滑动等功能

    首先推荐一下鸿洋大大的打造个性的图片预览与多点触控视频教程,这套教程教我们一步一步实现了多点触控实现对图片的平移和缩放的功能.这篇文章我将在鸿洋大大的基础之上做了一些扩展功能: 1.图片的惯性滑动 2 ...

  4. Android 多点触控与简单手势(一)

    现在一般的Android手机都会使用电容触摸屏最少可以支持两点触摸,多的可能是七八个,所以基本上都会支持多点触控, android系统中应用程序可以使用多点触控的事件来完成各种手势和场景需求. And ...

  5. Android 多点触控错误处理(java.lang.IllegalArgumentException: pointerIndex out of range)

    最近做View的多点触控时,每次第一次触控事件完美运行,第二次就直接崩了,错误信息如下: 01-03 00:05:44.220 4377-4410/system_process E/AndroidRu ...

  6. 关于android多点触控

    最近项目需要一个多点触控缩放的功能.然后上网查了下资料 总结一下: 首先android sdk版本很重要,比如你在AndroidManifest.xml中指定android:minSdkVersion ...

  7. Android多点触控(图片的缩放Demo)

    本文主要介绍Android的多点触控,使用了一个图片缩放的实例,来更好的说明其原理.须要实现OnTouchListener接口,重写当中的onTouch方法. 实现效果图:       源码: 布局文 ...

  8. android 多点触控

    多点触控 1.多点触控从字面意思讲就是你用大于等于2根的手指触摸子啊手机屏幕上. Android中监听触摸事件是onTouchEvent方法,它的参数为MotionEvent,下面列举MotionEv ...

  9. Android多点触控手势基础

    处理多点触控手势 多点触控就是同时把一根以上的手指放在屏幕上. 再继续往下以前需要补充一些名词: 触控手势:就是把一根或者几根手指放在屏幕上做各种动作,其中包括保留一根手指的前提下,拿起或者放下其余的 ...

随机推荐

  1. codeforces 712A. Memory and Crow

    2019-05-18 08:48:27 加油,加油,坚持!!! 这道题我没有想出公式推导,只是按照模拟题来做,第5个样例超时 样例超时,方法错误 https://www.cnblogs.com/ECJ ...

  2. 一步步教会你微信小程序的登录鉴权

    前言 为了方便小程序应用使用微信登录态进行授权登录,微信小程序提供了登录授权的开放接口.乍一看文档,感觉文档上讲的非常有道理,但是实现起来又真的是摸不着头脑,不知道如何管理和维护登录态.本文就来手把手 ...

  3. Qt5.9 WebEngine 概述

    Qt WebEngine模块提供了一个web浏览器, 在不使用本地浏览器的情况下, 它可以很容易地把Web内容嵌入到Qt应用程序中. Qt WebEngine为渲染HTML, XHTML和SVG文档, ...

  4. PLSQL简介

    目录 什么是PLSQL PLSQL起源 PLSQL早期版本 改善可移植性 改进执行权限于事务的完整性 原书:steven feuerstei-oracle PLSQL grogramming 2014 ...

  5. selenium对浏览器属性操作的方法

    最大化 方法一 //指明ChromeDriver路径 System.setProperty(Src_url_string.Chrome_Driver, Src_url_string.Driver_ad ...

  6. HBase编程 API入门系列之工具Bytes类(7)

    这是从程度开发层面来说,为了方便和提高开发人员. 这个工具Bytes类,有很多很多方法,帮助我们HBase编程开发人员,提高开发. 这里,我只赘述,很常用的! package zhouls.bigda ...

  7. C#服务控件UpdatePanel的局部刷新与属性AutoPostBack回传

    C#服务控件许多都有AutoPostBack这一属性(AutoPostBack意思是自动回传,也就是说此控件值更改后是否和服务器进行交互),如下代码所示: protected void Textbox ...

  8. Oracle获取alter.log的方法

    10g下:可以在 admin\{sid}\pfile文件下的init.ora文件中找到以下内容:audit_file_dest = C:\ORACLE\PRODUCT\10.2.0\ADMIN\ORC ...

  9. Tomcat 日志切割

    一.installing 日志轮训工具 yum  install cronolog -y 二.安装.修改tomcat文件 wget  http://mirrors.shuosc.org/apache/ ...

  10. 时间&物质&效率

    由于我的家庭是地道的农民家庭,在上学的时候,父母很辛苦的供我读初中,高中,大学. 现在我想说的是,用时间来换取效率是我求学时最大的遗憾. 举一个例子吧:每次回家坐火车,火车很费时间,假如我不缺钱,完全 ...