返回介绍

ScaleGestureDetector

发布于 2025-03-09 17:00:24 字数 2651 浏览 0 评论 0 收藏 0

ScaleGestureDetector

翻译时间:2010-12-05

版本:Android 2.3 r1

结构

继承关系

public class ScaleGestureDetector extends Object

java.lang.Object

android.view.ScaleGestureDetector

类概述

根据接收的 MotionEvent, 侦测由多个触点(多点触控)引发的变形手势。callback 方法 ScaleGestureDetector.OnScaleGestureListener 会在特定手势事件发生时通知用户。该类仅能和 Touch 事件引发的 MotionEvent 配合使用。使用该类需要

l 为你的 View 创建 ScaleGestureDetector 实例

l 确保在 onTouchEvent(MotionEvent) 方法中调用 onTouchEvent (MotionEvent). [译者注:前者为该类的 onTouchEvent 方法,后者为 View 的 onTouchEvent 方法。] 在事件发生时,定义在 callback 中的方法会被调用。

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

内部类

interface ScaleGestureDetector.OnScaleGestureListener

手势发生时接收通知的监听器

class ScaleGestureDetector.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。

补充

文章精选

android touchexample (中文)

Making Sense of Multitouch (android-developers.blogspot.com)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文