`
nanjingjiangbiao_T
  • 浏览: 2738980 次
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

Android--多点触控事件捕捉

 
阅读更多

本实例实现的多点触控,当用户一个手指点击屏幕时,显示的是一个触控动作,两个手指点击显示两个,没有则显示为0.

下面给出实现的截图对比:


下面给出本实例的源代码:

package irdc.ex07_20;

import android.app.Activity;
import android.os.Bundle;
import android.view.MotionEvent;
import android.widget.TextView;

public class EX07_20 extends Activity
{
  private TextView myText1;
  private TextView myText2;
  
  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState)
  {
    super.onCreate(savedInstanceState);
    /* 加载main.xml Layout */
    setContentView(R.layout.main);
    /* TextView初始化 */
    myText1=(TextView)findViewById(R.id.text1);
    myText2=(TextView)findViewById(R.id.text2);
  }
  
  /* 重写onTouchEvent() */  
  @Override
  public boolean onTouchEvent(MotionEvent event) 
  {   
    /* 显示触碰点的数量 */
    myText2.setText(""+event.getPointerCount());
    
    /* event的Action?断 */
    switch(event.getAction())
    {
      /* 触碰事件发生 */
      case MotionEvent.ACTION_DOWN:
        myText1.setText(getResources().getString(R.string.act1));
        break;
      /* 触碰事件结束 */
      case MotionEvent.ACTION_UP:
        myText1.setText(getResources().getString(R.string.act2));
        /* 显示点数为0 */
        myText2.setText("0");
        break;
      /* 第1个触碰点被按下 */
      case MotionEvent.ACTION_POINTER_1_DOWN:
        myText1.setText(getResources().getString(R.string.act3));
        break;
      /* 第1个触碰点被移除 */
      case MotionEvent.ACTION_POINTER_1_UP:
        myText1.setText(getResources().getString(R.string.act4));
        break;
      /* 第2个触碰点被按下 */
      case MotionEvent.ACTION_POINTER_2_DOWN:
        myText1.setText(getResources().getString(R.string.act5));
        break;
      /* 第2个触碰点被移除 */
      case MotionEvent.ACTION_POINTER_2_UP:
        myText1.setText(getResources().getString(R.string.act6));
        break;
      default:
        break;
    }
    return super.onTouchEvent(event);
  }
}

布局文件如下:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout 
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
>
  <TextView
    android:id="@+id/text1"
    android:textSize="24sp"
    android:textColor="#FFFFFF"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"
    android:text="请触碰屏幕以触发事件"
  />
  <TextView
    android:id="@+id/text2"
    android:textSize="80sp"
    android:textColor="#FFFFFF"
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"
    android:gravity="center"
    android:text="0"
  />
</FrameLayout>


分享到:
评论

相关推荐

    TouchScript-9_unity_broadqa9_多点触控插件_TouchScript

    总的来说,TouchScript为Unity开发者提供了一个强大的多点触控工具,通过它,开发者可以专注于游戏逻辑的设计,而不是底层触摸事件的处理。无论是简单的触摸响应还是复杂的交互逻辑,TouchScript都能帮助你轻松实现...

    Android多点触控放大缩小图片

    在Android系统中,多点触控主要通过MotionEvent类来处理,它可以捕捉到多个手指同时在屏幕上的动作。 二、关键类与接口 1. MotionEvent:Android中的事件类,用于表示屏幕上发生的触摸事件,包括ACTION_DOWN、...

    图片多点触控伸缩变换位置

    在Android中,可以使用GestureDetector和ScaleGestureDetector来捕捉类似的事件。 2. **手势识别**:当用户触摸屏幕时,系统会触发相应的手势事件。我们需要编写回调函数来处理这些事件,例如在捏合手势中,我们...

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

    首先,实现多点触控需要监听`MotionEvent`,这是Android系统提供的处理触摸事件的类。当用户在屏幕上触摸时,系统会发送一系列`MotionEvent`事件到相应的视图。我们需要重写`View`的`onTouchEvent`方法来处理这些...

    canvas单点触控和多点触控显示类似股票滑动数据

    2. **状态管理**:在多点触控中,需要维护一个手指状态数组,记录每个手指的ID和位置,以便在ACTION_MOVE事件中计算手指间的相对位置变化。 3. **平滑滚动**:为了提供流畅的滑动体验,可以使用Scroller或Animator...

    安卓手势放大图片多点触控缩放图片

    在安卓平台上,手势识别和多点触控是用户...总之,“安卓手势放大图片,多点触控”是Android开发中的高级交互技术,它极大地提高了用户体验。通过理解和实践这些概念,开发者可以创建更加生动、直观的应用程序界面。

    AR 多点触控大屏 蓝牙 等新技术应用PPT教学课件.pptx

    这篇PPT教学课件主要介绍了几种新兴的科技应用,包括增强现实(AR)、多点触控大屏、蓝牙技术和近场通信(NFC)等。这些技术正在改变我们的生活方式,尤其是在娱乐、信息获取和交互体验方面。 首先,AR增强现实是一...

    安卓Android源码——touch.rar

    - 处理多点触控事件通常涉及`ACTION_POINTER_DOWN`和`ACTION_POINTER_UP`等额外的动作类型。 6. **手势识别** - Android提供了`GestureDetector`和`ScaleGestureDetector`等类,帮助开发者识别常见的手势,如滑动...

    Android应用源码之多点缩放字体DEMO .zip

    类中可能有一个触摸事件监听器,用于捕捉用户的多点触控操作,如双指捏合手势,以此来调整字体大小。 3. **res**: 资源目录存储了应用的所有非代码资源,如布局文件(layout)、图片(drawable)、字符串(string)...

    Mastering the Android Touch System - Daves Slides.pdf

    Android 支持多点触控,即同时处理多个手指的触摸事件。MotionEvent 提供了获取触摸点数量(getPointerCount)和每个点坐标(getPointerId 和 getX/Y)的方法,方便开发者处理多指操作,如缩放、旋转等手势。 六、...

    android android 控件跟随手动

    - **多点触控支持**:本例仅支持单点触控,如果需要支持多点触控,则需要对代码进行相应扩展。 - **边界检测**:为了避免控件移出屏幕范围,可以在`ACTION_MOVE`中增加边界检测逻辑。 通过以上步骤,我们可以实现一...

    Android中丰富多彩的onTouch事件.rar

    除了基本的单点触摸事件,Android还支持多点触控。`ACTION_POINTER_DOWN`和`ACTION_POINTER_UP`分别表示额外的手指按下和抬起,配合`MotionEvent`的`getActionIndex()`和`getPointerId()`方法可以区分不同的手指。 ...

    Android 访米聊手写和涂鸦源码.rar

    - Android支持多点触控,可以通过`MotionEvent`的`getPointerCount()`和`getPointerId()`方法处理多个手指同时绘制的情况。 8. **颜色选择器与工具栏**: - 多数涂鸦应用会有颜色选择、画笔大小调整等功能,这些...

    android-touchexample:自动从code.google.compandroid-touchexample导出

    开发者可以使用`MotionEvent`的`getPointerCount()`和`getActionIndex()`等方法来识别和处理多点触控事件。 在`android-touchexample`项目中,你可以找到实际的代码示例,了解如何在实践中应用这些概念。通过研究...

    android touch源码

    当用户在屏幕上触摸时,事件首先由硬件层的触控传感器捕捉,然后转换为Android系统可识别的事件对象。这些事件主要包括ACTION_DOWN(手指按下)、ACTION_MOVE(手指移动)和ACTION_UP(手指抬起)等。 2. ...

    android绘图(事件处理之触摸事件)

    在Android开发中,触摸事件是用户与屏幕交互的基础,它涉及到事件传递机制、手势识别以及自定义绘图等核心知识点。本篇文章将深入探讨“Android绘图中的触摸事件处理”。 一、触摸事件处理机制 Android系统通过...

    Android高级应用源码-Android滑动解锁.zip

    开发者需要确保即使在多点触控设备上,也能有效地防止误触导致的解锁。此外,应该有重试限制和锁定机制,以防连续失败的解锁尝试。 6. **源码学习价值**: - 这个源码可以作为深入理解Android事件处理、视图绘制、...

    Unity3d手势触摸插件 Fingers - Touch Gestures for Unity 2.5.6

    - **多点触控支持**:支持多个手指同时触摸屏幕,并能够准确识别每个触摸点的位置和移动轨迹。 - **多种手势识别**:支持滑动、缩放、旋转等多种常用手势,以及自定义手势的创建。 - **高度可定制化**:用户可以根据...

    android触摸屏测试程序demo

    多点触控是现代触摸屏的一个关键特性,允许用户同时用多个手指操作屏幕。测试程序会验证这一点,包括两指缩放、旋转、拖放等手势。 4. **触摸屏响应时间** 测试程序会测量从触摸事件发生到屏幕响应的时间,以评估...

Global site tag (gtag.js) - Google Analytics