Android 2.3 r1 中文 API (57) —— ScaleGestureDetector
前言
本章内容是 android.view.ScaleGestureDetector,允许Views可以通过提供的MotionEvents检测和处理包括多点触摸在内的手势变化信息,版本为Android 2.3 r1,翻译来自"一昕",再次感谢"一昕" !期待你一起参与Android中文API的翻译,联系我over140@gmail.com。
声明
欢迎转载,但请保留文章原始出处:)
Android中文翻译组:http://code.taobao.org/project/view/404/
正文
一、结构
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检测和处理包括多点触摸在内的手势变化信息。)
三、内部类
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)
结束