`

2011.10.17——— android 多点触控

阅读更多
2011.10.17——— android 多点触控
参考:http://blog.csdn.net/ldj299/article/details/6422547

主要API:

event.getPointerCount():触控点的个数
getPointerId(int pointerIndex):pointerIndex从0到getPointerCount-1,返回一个触摸点的标示
getX(int pointerIndex):通过标示来得到X坐标
getY(int pointerIndex):通过标示来得到Y坐标
MotionEvent.ACTION_POINTER_1_DOWN:第一个触摸点点击事件
MotionEvent.ACTION_POINTER_2_DOWN:第二个触摸点点击事件
MotionEvent.ACTION_POINTER_1_UP:第一个触摸点松开事件
MotionEvent.ACTION_POINTER_2_UP:第二个触摸点松开事件


测试代码如下:

自定义view

package com.lp.multi;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;

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;
	}
	
	
	

}


注意:
onTouchEvent返回true 要不是没有效果的



Activity
package com.lp.multi;

import android.app.Activity;
import android.os.Bundle;

public class MainActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(new MyView(this));
    }
}



运行结果:


10-17 17:53:32.269: INFO/System.out(11675): 1
10-17 17:53:32.279: INFO/System.out(11675): 2
10-17 17:53:32.279: INFO/System.out(11675): ACTION_POINTER_2_DOWN
10-17 17:53:32.279: INFO/System.out(11675): 324.3229 201.57916 88.79375 226.62125
10-17 17:53:32.289: INFO/System.out(11675): 2
10-17 17:53:32.289: INFO/System.out(11675): ACTION_MOVE
10-17 17:53:32.299: INFO/System.out(11675): 324.3229 201.57916 88.79375 226.62125
10-17 17:53:32.299: INFO/System.out(11675): 2
10-17 17:53:32.299: INFO/System.out(11675): ACTION_POINTER_1_UP
10-17 17:53:32.309: INFO/System.out(11675): 324.3229 201.57916 88.79375 226.62125
10-17 17:53:32.309: INFO/System.out(11675): 1



结论:

1、ACTION_POINTER_2_DOWN和ACTION_POINTER_1_DOWN 可能只会触发一个
2、事件只触发了一个,但是坐标都是能得到的



分享到:
评论

相关推荐

    2011.10.09——— android ImageView放大缩小(2)

    标题中的“2011.10.09——— android ImageView放大缩小(2)”指的是一个关于Android平台中ImageView组件的优化技术,特别是如何处理图片的缩放问题。在Android应用开发中,ImageView是用于显示图像的常见组件,但...

    嵌入式成品项目-无线接收时钟.zip

    嵌入式成品项目——无线接收时钟.zip嵌入式成品项目——无线接收时钟.zip嵌入式成品项目——无线接收时钟.zip嵌入式成品项目——无线接收时钟.zip嵌入式成品项目——无线接收时钟.zip嵌入式成品项目——无线接收时钟...

    基于因子分析的我国A股上市...争力评价——以医药企业为例_张澳.caj

    基于因子分析的我国A股上市...争力评价——以医药企业为例_张澳.caj

    数据库大作业-学校人事信息管理系统.zip

    数据库大作业——学校人事信息管理系统.zip数据库大作业——学校人事信息管理系统.zip数据库大作业——学校人事信息管理系统.zip数据库大作业——学校人事信息管理系统.zip数据库大作业——学校人事信息管理系统.zip...

    微信小程序——新闻客户端(截图+源码).zip

    微信小程序——新闻客户端(截图+源码).zip 微信小程序——新闻客户端(截图+源码).zip 微信小程序——新闻客户端(截图+源码).zip 微信小程序——新闻客户端(截图+源码).zip 微信小程序——新闻客户端(截图+...

    微信小程序——人脸检测(截图+源码).zip

    微信小程序——人脸检测(截图+源码).zip 微信小程序——人脸检测(截图+源码).zip 微信小程序——人脸检测(截图+源码).zip 微信小程序——人脸检测(截图+源码).zip 微信小程序——人脸检测(截图+源码).zip ...

    微信小程序——图书管理系统(截图+源码).zip

    微信小程序——图书管理系统(截图+源码).zip 微信小程序——图书管理系统(截图+源码).zip 微信小程序——图书管理系统(截图+源码).zip 微信小程序——图书管理系统(截图+源码).zip 微信小程序——图书管理...

    微信小程序——移动端商城(截图+源码).zip

    微信小程序——移动端商城(截图+源码).zip 微信小程序——移动端商城(截图+源码).zip 微信小程序——移动端商城(截图+源码).zip 微信小程序——移动端商城(截图+源码).zip 微信小程序——移动端商城(截图+...

    微信小程序——手势解锁(截图+源码).zip

    微信小程序——手势解锁(截图+源码).zip 微信小程序——手势解锁(截图+源码).zip 微信小程序——手势解锁(截图+源码).zip 微信小程序——手势解锁(截图+源码).zip 微信小程序——手势解锁(截图+源码).zip ...

    微信小程序——全屏动画滚动(截图+源码).zip

    微信小程序——全屏动画滚动(截图+源码).zip 微信小程序——全屏动画滚动(截图+源码).zip 微信小程序——全屏动画滚动(截图+源码).zip 微信小程序——全屏动画滚动(截图+源码).zip 微信小程序——全屏动画...

    Android经典项目——AndroidStudio版本.zip

    Android经典项目——AndroidStudio版本.zip。 经典项目——AndroidStudio版本.zip经典项目——AndroidStudio版本.zip Android 经典项目 源码

    python项目——Word助手.zip

    python项目——Word助手.zip python项目——Word助手.zip python项目——Word助手.zip python项目——Word助手.zip python项目——Word助手.zip python项目——Word助手.zip python项目——Word助手.zip python项目...

    java毕业设计-基于springboot的ERP系统源码+数据库.zip

    java毕业设计——基于springboot的ERP系统源码+数据库.zipjava毕业设计——基于springboot的ERP系统源码+数据库.zipjava毕业设计——基于springboot的ERP系统源码+数据库.zipjava毕业设计——基于springboot的ERP...

    微信小程序——图片自适应 ,富文本解析(截图+源码).zip

    微信小程序——图片自适应 ,富文本解析(截图+源码).zip 微信小程序——图片自适应 ,富文本解析(截图+源码).zip 微信小程序——图片自适应 ,富文本解析(截图+源码).zip 微信小程序——图片自适应 ,富文本...

    微信小程序——小游戏-别踩白块(截图+源码).zip

    微信小程序——小游戏-别踩白块(截图+源码).zip 微信小程序——小游戏-别踩白块(截图+源码).zip 微信小程序——小游戏-别踩白块(截图+源码).zip 微信小程序——小游戏-别踩白块(截图+源码).zip 微信小程序...

    Android多点触控技术实战,对图片进行缩放和移动Demo

    在Android开发中,多点触控(Multi-Touch)技术是一项关键特性,它允许用户通过两个或更多手指来与屏幕交互,实现如缩放、旋转、拖动等操作。本项目"PhotoWallFallsDemo"就是一个典型的实例,演示了如何在Android...

    C语言项目——MP3音乐播放器.zip

    C语言项目——MP3音乐播放器.zip C语言项目——MP3音乐播放器.zip C语言项目——MP3音乐播放器.zip C语言项目——MP3音乐播放器.zip C语言项目——MP3音乐播放器.zip C语言项目——MP3音乐播放器.zip C语言项目——...

    java毕业设计——基于ssm的房屋租赁系统设计与实现(源码+数据库).zip

    java毕业设计——基于ssm的房屋租赁系统设计与实现(源码+数据库).zip java毕业设计——基于ssm的房屋租赁系统设计与实现(源码+数据库).zip java毕业设计——基于ssm的房屋租赁系统设计与实现(源码+数据库).zip java...

    python项目——DIY字符画.zip

    python项目——DIY字符画.zip python项目——DIY字符画.zip python项目——DIY字符画.zip python项目——DIY字符画.zip python项目——DIY字符画.zip python项目——DIY字符画.zip python项目——DIY字符画.zip ...

Global site tag (gtag.js) - Google Analytics