Android自定义View的多点触控

本文详细探讨了如何在Android自定义View中实现多点触控功能。通过覆盖onTouchEvent()方法,利用MotionEvent提供的API检测多个触摸点,并进行相应的坐标处理和事件响应。了解并掌握多点触控的原理,可以为Android应用带来更丰富的交互体验。
摘要由CSDN通过智能技术生成
在Android游戏开发中,自定义View的多点触控技术必不可少,本文主要简单讲解下Android中多点触控技术的基础知识。
所谓多点触控技术,就是手机屏幕上支持同时处理多个触控点的触屏或移动事件。多点触控的关键点有以下三点:(1)需要LCD和应用程序同时支持;(2)通过重写View类中的onTouchEvent()方法来实现;(3)通过event.getActionMasked()来判断触控点的性质(主控点/辅控点)和动作类型(按下/移动/抬起).
对于单点触控,MotionEvent的类型常量及含义如下:
MotionEvent.ACTION_DOWN://触控点按下
MotionEvent.ACTION_MOVE://触控点移动
MotionEvent.ACTION_UP://触控点抬起
对于多点触控,MotionEvent的类型常量及含义如下:
MotionEvent.ACTION_DOWN://(主控点)第一个触控点按下
MotionEvent.ACTION_POINTER_DOWN://(辅控点)第一个之后的触控点按下
MotionEvent.ACTION_MOVE://主、辅控点移动
MotionEvent.ACTION_UP://最后一个触控点抬起
MotionEvent.ACTION_POINTER_UP://非最后一个触控点抬起
值得注意的是,对于多点触控,主/辅控点的按下或抬起的事件都是针对一个触控点的,也就是说可以通过与运算和移位运算获得本次触控事件的触点id:
int id = (event.getAction()&MotionEvent.ACTION_POINTER_ID_MASK) >>> MotionEvent.ACTION_POINTER_ID_SHIFT;
而主/辅控点的移动事件则更多的是针对所有触控点的,即event中包含了本次采样时获得的所有触控点移动后的坐标,因此,在移动事件中,通常需要对所有的触控点进行相应的逻辑处理。
以下是一个简单的多点触控例子。


(1)触控点的描述类
简单地,触控点需要描述其坐标和id,本例中再加上触控点的绘制半径和颜色。
public class BNPoint {
    float x;//触控点x坐标
    float y;//触控点y坐标
    int id;//触控点id
    int[] color;//触控点的绘制颜色
    static final float RADIS = 80;//触控点绘制半径

    public BNP
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值