標籤:多點觸摸 android_scalegesture 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 檢測和處理包括多點觸摸在內的手勢變化資訊。
內部類
- interface ScaleGestureDetector.OnScaleGestureListener手勢發生時接收通知的監聽器
- 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。
Android_ScaleGestureDetector多點觸控