多点触控

1.多点触控从字面意思讲就是你用大于等于2根的手指触摸子啊手机屏幕上。

Android中监听触摸事件是onTouchEvent方法,它的参数为MotionEvent,下面列举MotionEvent的一些常用的方法:

getPointerCount() 获得触屏的点数。

getPointerId(int pointerIndex) 返回一个触摸点的标示,pointIndex是你第几个触控点的索引

getX() 获得触屏的X坐标值

getY() 获得触屏的Y坐标值

getAction() 获得触屏的动作

ACTION_DOWN:按下的动作开始,比如用手指按屏幕。

ACTION_UP:按下的动作完成,比如手指停止按屏幕,离开屏幕。

ACTION_MOVE:在动作开始和完成之间的移动,比如手指在屏幕上滑动。

MotionEvent.ACTION_POINTER_1_DOWN:第一个触摸点点击事件

MotionEvent.ACTION_POINTER_2_DOWN:第二个触摸点点击事件

MotionEvent.ACTION_POINTER_1_UP:第一个触摸点松开事件

MotionEvent.ACTION_POINTER_2_UP:第二个触摸点松开事件

2.下面通过一个例子来说明:
注意:
onTouchEvent返回true 要不是没有效果的

 public class MyView extends View{  

     public MyView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
// TODO Auto-generated constructor stub
} public MyView(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
} public MyView(Context context) {
super(context);
// TODO Auto-generated constructor stub
} @Override
protected void onDraw(Canvas canvas) {
Paint mPaint = new Paint();
mPaint.setColor(Color.GRAY);
mPaint.setTextSize(30);
canvas.drawText("呵呵", 100, 200, mPaint);
} @Override
public boolean onTouchEvent(MotionEvent event) { int pointCount = event.getPointerCount();
System.out.println(pointCount);
if (pointCount == 2) {
final float x0 = event.getX(event.getPointerId(0));
final float y0 = event.getY(event.getPointerId(0)); final float x1 = event.getX(event.getPointerId(1));
final float y1 = event.getY(event.getPointerId(1)); switch (event.getAction()) {
case MotionEvent.ACTION_POINTER_2_DOWN:
System.out.println("ACTION_POINTER_2_DOWN");
break;
case MotionEvent.ACTION_POINTER_1_DOWN:
System.out.println("ACTION_POINTER_1_DOWN");
break;
case MotionEvent.ACTION_POINTER_1_UP:
System.out.println("ACTION_POINTER_1_UP");
break;
case MotionEvent.ACTION_POINTER_2_UP:
System.out.println("ACTION_POINTER_2_UP");
break;
case MotionEvent.ACTION_MOVE: {
System.out.println("ACTION_MOVE");
break;
}
} System.out.println(x0+" "+x1+" "+y0+" "+y1);
} return true;
} }

android 多点触控的更多相关文章

  1. Android多点触控技术

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

  2. [yueqian_scut]Android多点触控技术和应用框架

    Android多点触控技术跟Linux输入子系统紧密相关.本文将从应用的角度说明Android多点触控技术的接口和应用. 一.多点触控场景分析 网络上有关Android多点触控技术的文章多见于两点拉伸 ...

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

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

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

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

  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多点触控手势基础

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

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

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

随机推荐

  1. 73个word使用终极技巧

    1.问:Word里边怎样设置每页不同的页眉?如何使不同的章节显示的页眉不同? 答:分节,每节可以设置不同的页眉.文件——页面设置——版式——页眉和页脚——首页不同 2.问:请问Word中怎样让每一章用 ...

  2. linux解压缩基本命令使用

    解压缩命令1.gzip 只能压缩文件,不可压缩目录,压缩后不保留原文件gzip a.txt会删除原文件 生成.gz后缀的文件 a.txt.gz2.gunzip解压.gz的文件gzip -d a.txt ...

  3. VS加载项目时报错 尚未配置为Web项目XXXX指定的本地IIS

    网上找的几个方法都不行 最后自己解决了.首先打开该项目得csproj文件,找到<ProjectExtensions>这个标签,是在最后部分,然后把<UseIIS>True< ...

  4. 本人编写的一份前端vue面试题

    说明,此题目本人自出,做过本人所在公司的前端面试题,在此共享给大家 1. 如何在vue组件中实现v-model的功能?(只需给出关键代码) 2. 简述你知道的生命周期函数和执行时机 3. 谈谈你对计算 ...

  5. python----python使用mysql

    Python操作MySQL主要使用两种方式: 原生模块 pymsql ORM框架 SQLAchemy pymql pymsql是Python中操作MySQL的模块,在windows中的安装: pip ...

  6. 使用ReentrantReadWriteLock类

    读读共享 类ReentrantReadWriteLock的使用:写写互斥 读写互斥

  7. Java如何解决form表单上传文件,以及页面返回处理结果通知!

    前端JSP代码 <form id='formSumbit' class='form-horizontal' action='/ncpay/route/chlsubmcht/batchImpor' ...

  8. 继承ServletContextListener可以完成的事情

    1.定时任务: 定时任务是从某个固定的时间开始执行特定的程序,继承这个方法,可以实现刚启动项目的时候执行某特定的程序,完成给客户部署的时即可以看到某个页面的效果. 2.初始化系统常量等: 这样来完成系 ...

  9. eth0&nbsp;no&nbsp;such&nbsp;device(reload)

    转载自:http://blog.chinaunix.net/uid-25554408-id-292638.html 今天我在vmware里安装了虚拟机,安装虚拟机就想安装vmware tools(这个 ...

  10. solrserver实例化

    以下是httpClient实例化方式,需要tomcat运行Solr服务 1.ConcurrentUpdateSolrServer实例化SolrServer,该类实例化多用于更新删除索引操作 Concu ...