现在的位置: 首页 > 综合 > 正文

Android学习札记20:ScaleGestureDetector

2018年04月04日 ⁄ 综合 ⁄ 共 1465字 ⁄ 字号 评论关闭

类概述
    根据接收的 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)  
   构造函数




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

抱歉!评论已关闭.