Android学习札记20:ScaleGestureDetector

Android学习札记20:ScaleGestureDetector_第1张图片

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

    使用该类需要为你的View创建ScaleGestureDetector实例
    确保在 onTouchEvent(MotionEvent)方法中调用onTouchEvent (MotionEvent)。在事件发生时,定义在 callback中的方法会被调用。
    (ScaleGestureDetector 为 Android2.2 新增的类,允许 Views 可以通过提供的MotionEvents 检测和处理包括多点触摸在内的手势变化信息。)


内部类
    interface  ScaleGestureDetector.OnScaleGestureListener
    手势发生时接收通知的监听器


    class ScaleGestureDetector.SimpleOnScaleGestureListener
    一个方便使用的类。 若仅想监听一部分尺寸伸缩事件,可继承该类。


公共构造方法
    public ScaleGestureDetector(Context context, ScaleGestureDetector.OnScaleGestureListener listener)  
   构造函数


Android学习札记20:ScaleGestureDetector_第2张图片


公共方法
    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)