Android_ScaleGestureDetector多点触控

public class ScaleGestureDetector extends Object

  • java.lang.Object

    • android.view.ScaleGestureDetector

类概述

根据接收的 MotionEvent,  侦测由多个触点(多点触控)引发的变形手势。callback 方法ScaleGestureDetector.OnScaleGestureListener  会在特定手势事件发生时通知用户

。该类仅能和 Touch 事件引发的 MotionEvent 配合使用。使用该类需要

  • 为你的 View 创建 ScaleGestureDetector  实例
  • 确保在 onTouchEvent(MotionEvent)方法中调用 onTouchEvent (MotionEvent)
  • 前者为该类的 onTouchEvent 方法,后者为 View 的 onTouchEvent 方法。在事件发生时,定义在 callback 中的方法会被调用。

ScaleGestureDetector 为 Android2.2 新增的类,允许 Views 可以通过提供的MotionEvents 检测和处理包括多点触摸在内的手势变化信息。

内部类

  1. interface ScaleGestureDetector.OnScaleGestureListener手势发生时接收通知的监听器
  2. classScaleGestureDetector.SimpleOnScaleGestureListener 若仅想监听一部分尺寸伸缩事件,可继承该类。

公共构造方法

public ScaleGestureDetector (Context context, ScaleGestureDetector.OnScaleGestureListener listener)

公共方法

public float getCurrentSpan ()

返回手势过程中,组成该手势的两个触点的当前距离。

返回值:以像素为单位的触点距离。

public long getEventTime ()

返回事件被捕捉时的时间。

返回值以毫秒为单位的事件时间。

public float getFocusX ()

返回当前手势焦点的 X 坐标。

  • 如果手势正在进行中,焦点位于组成手势的两个触点之间。
  • 如果手势正在结束,焦点为仍留在屏幕上的触点的位置。
  • 若 isInProgress()返回 false,该方法的返回值未定义。

返回值:返回焦点的 X 坐标值,以像素为单位。

public float getFocusY ()

返回当前手势焦点的 Y 坐标。

  • 如果手势正在进行中,焦点位于组成手势的两个触点之间。
  • 如果手势正在结束,焦点为仍留在屏幕上的触点的位置。
  • 若 isInProgress()返回 false,该方法的返回值未定义。

返回值返回焦点的 Y 坐标值,以像素为单位。

public float getPreviousSpan ()

返回手势过程中,组成该手势的两个触点的前一次距离。

返回值两点的前一次距离,以像素为单位。

public float getScaleFactor ()

返回从前一个伸缩事件至当前伸缩事件的伸缩比率。该值定义为 (getCurrentSpan() / getPreviousSpan())。

返回值当前伸缩比率.

public long getTimeDelta ()

返回前一次接收到的伸缩事件距当前伸缩事件的时间差,以毫秒为单位。

返回值从前一次伸缩事件起始的时间差,以毫秒为单位。

public boolean isInProgress ()

如果手势处于进行过程中,返回 true.

返回值如果手势处于进行过程中,返回 true。否则返回 false。

时间: 2024-10-29 03:23:33

Android_ScaleGestureDetector多点触控的相关文章

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

转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/11100327 在上一篇文章中我带着大家一起实现了Android瀑布流照片墙的效果,虽然这种效果很炫很酷,但其实还只能算是一个半成品,因为照片墙中所有的图片都是只能看不能点的.因此本篇文章中,我们就来对这一功能进行完善,加入点击图片就能浏览大图的功能,并且在浏览大图的时候还可以通过多点触控的方式对图片进行缩放. 如果你还没有看过 Android瀑布流照片墙实现,体验不规则排列的美感

android 多点触控

多点触控 1.多点触控从字面意思讲就是你用大于等于2根的手指触摸子啊手机屏幕上. Android中监听触摸事件是onTouchEvent方法,它的参数为MotionEvent,下面列举MotionEvent的一些常用的方法: getPointerCount() 获得触屏的点数. getPointerId(int pointerIndex) 返回一个触摸点的标示,pointIndex是你第几个触控点的索引 getX() 获得触屏的X坐标值 getY() 获得触屏的Y坐标值 getAction()

Android实现图片多点触控自由伸缩

简介 作为Android开发者,我们经常需要自定义控件,比如下面我们说的实现图片的多点触控和伸缩释放,这也是由于用户已经有这样的常识了,那就是看见有图片的地方就可以点击查看大图,并且可以通过手指对图片进行伸缩和移动,如果应用没有实现这一点,那么对用户来说将会是很糟糕的体验,用户很"愤怒".所以作为Android开发者,我们的任务就是让用户"爽".哈哈哈....下面我们将通过自定义ImageView实现以上功能. 涉及技术 一.Matrix(矩阵),Android是通

(五)多点触控之兼容ViewPager

在上一篇文章中,自定义的ZoomImageView已经实现了自由缩放,自由移动以及双击放大与缩小的功能.已经可以投入使用这个控件了.下面我们就在ViewPager中使用这个控件.如果你还没读过上一篇文章,可以点击下面的链接: http://www.cnblogs.com/fuly550871915/p/4940193.html 一.在ViewPager中使用自定义的ZoomImageView 快速的代建起ViewPager吧.修改activity_main.xml中的代码,如下: <Relati

Cocos2dx 多点触控

1 最容易忽略的东西,对于ios平台,须得设置glView的属性: [__glView setMultipleTouchEnabled:YES]; 2 如果调用CCLayer的方法setTouchEnabled,则不需要手动加touchDelegate,因为这个函数里会自动做这些事情. 3 如果调用CCLayer的方法setTouchEnabled,之前可以调用一个设置多点或单点的函数来控制setTouchEnable的注册行为,这个函数是: setTouchMode 4 也可以直接调用 coc

Cocos2d-x3.2 多点触控

//GameScene.h #include "cocos2d.h" USING_NS_CC; class GameScene : public cocos2d::Layer { public:     static cocos2d::Scene* createScene();          virtual bool init();          virtual void onTouchesBegan(const std::vector<Touch*>& t

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

最近做View的多点触控时,每次第一次触控事件完美运行,第二次就直接崩了,错误信息如下: 01-03 00:05:44.220 4377-4410/system_process E/AndroidRuntime: *** FATAL EXCEPTION IN SYSTEM PROCESS: android.ui java.lang.IllegalArgumentException: pointerIndex out of range at android.view.MotionEvent.nat

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

前言:当今的手机都支持多点触控功能(可以进行图片伸缩,变换位置),但是我们程序员要怎样结合硬件去实现这个功能呢? 跟随我一起,来学习这个功能 国际惯例:先上DEMO免费下载地址:http://download.csdn.net/detail/cnwutianhao/9443667 示例图片: 我是用Genymotion录制的,没有真机上多点触控显示的效果那么好,大家在真机上跑程序,会体会到多点触控功能.(注:Genymotion多点触控快捷键是 ctrl+鼠标指针上下拖动) 具体代码实现: 布局

Android实现多点触控,自由缩放图片

Android多点触控涉及到的知识点 1.ScaleGestureDetector 2.OnScaleGestureListener 3.Matrix 4.OnTouchListener 四个知识点需要了解一下,需要注意的是Matrix在内存中是一个一维数组,操控图片的Matrxi是一个3X3的矩阵,在内存中也就是一个大小为9的一维数组. 实现多点触控,自由变化图片 1. ImageView的基础上继承 2.因为要在图片加载完成就获取到相关的属性,所以实现OnGlobalLayoutListen