ScaleGestureDetector


public class ScaleGestureDetector
extends Object

java.lang.Object
   ↳ android.view.ScaleGestureDetector


Detects scaling transformation gestures using the supplied MotionEvents. The OnScaleGestureListener callback will notify users when a particular gesture event has occurred. This class should only be used with MotionEvents reported via touch. To use this class:

Summary

Nested classes

interface ScaleGestureDetector.OnScaleGestureListener

The listener for receiving notifications when gestures occur. 

class ScaleGestureDetector.SimpleOnScaleGestureListener

A convenience class to extend when you only want to listen for a subset of scaling-related events. 

Public constructors

ScaleGestureDetector(Context context, ScaleGestureDetector.OnScaleGestureListener listener)

Creates a ScaleGestureDetector with the supplied listener.

ScaleGestureDetector(Context context, ScaleGestureDetector.OnScaleGestureListener listener, Handler handler)

Creates a ScaleGestureDetector with the supplied listener.

Public methods

float getCurrentSpan()

Return the average distance between each of the pointers forming the gesture in progress through the focal point.

float getCurrentSpanX()

Return the average X distance between each of the pointers forming the gesture in progress through the focal point.

float getCurrentSpanY()

Return the average Y distance between each of the pointers forming the gesture in progress through the focal point.

long getEventTime()

Return the event time of the current event being processed.

float getFocusX()

Get the X coordinate of the current gesture's focal point.

float getFocusY()

Get the Y coordinate of the current gesture's focal point.

float getPreviousSpan()

Return the previous average distance between each of the pointers forming the gesture in progress through the focal point.

float getPreviousSpanX()

Return the previous average X distance between each of the pointers forming the gesture in progress through the focal point.

float getPreviousSpanY()

Return the previous average Y distance between each of the pointers forming the gesture in progress through the focal point.

float getScaleFactor()

Return the scaling factor from the previous scale event to the current event.

long getTimeDelta()

Return the time difference in milliseconds between the previous accepted scaling event and the current scaling event.

boolean isInProgress()

Returns true if a scale gesture is in progress.

boolean isQuickScaleEnabled()

Return whether the quick scale gesture, in which the user performs a double tap followed by a swipe, should perform scaling.

boolean isStylusScaleEnabled()

Return whether the stylus scale gesture, in which the user uses a stylus and presses the button, should perform scaling.

boolean onTouchEvent(MotionEvent event)

Accepts MotionEvents and dispatches events to a OnScaleGestureListener when appropriate.

void setQuickScaleEnabled(boolean scales)

Set whether the associated OnScaleGestureListener should receive onScale callbacks when the user performs a doubleTap followed by a swipe.

void setStylusScaleEnabled(boolean scales)

Sets whether the associated OnScaleGestureListener should receive onScale callbacks when the user uses a stylus and presses the button.

Inherited methods

Public constructors

ScaleGestureDetector

Added in API level 8
public ScaleGestureDetector (Context context, 
                ScaleGestureDetector.OnScaleGestureListener listener)

Creates a ScaleGestureDetector with the supplied listener. You may only use this constructor from a Looper thread.

Parameters
context Context: the application's context This value cannot be null.

listener ScaleGestureDetector.OnScaleGestureListener: the listener invoked for all the callbacks, this must not be null.

Throws
NullPointerException if listener is null.

ScaleGestureDetector

Added in API level 19
public ScaleGestureDetector (Context context, 
                ScaleGestureDetector.OnScaleGestureListener listener, 
                Handler handler)

Creates a ScaleGestureDetector with the supplied listener.

Parameters
context Context: the application's context This value cannot be null.

listener ScaleGestureDetector.OnScaleGestureListener: the listener invoked for all the callbacks, this must not be null.

handler Handler: the handler to use for running deferred listener events. This value may be null.

Throws
NullPointerException if listener is null.

See also:

Public methods

getCurrentSpan

Added in API level 8
public float getCurrentSpan ()

Return the average distance between each of the pointers forming the gesture in progress through the focal point.

Returns
float Distance between pointers in pixels.

getCurrentSpanX

Added in API level 11
public float getCurrentSpanX ()

Return the average X distance between each of the pointers forming the gesture in progress through the focal point.

Returns
float Distance between pointers in pixels.

getCurrentSpanY

Added in API level 11
public float getCurrentSpanY ()

Return the average Y distance between each of the pointers forming the gesture in progress through the focal point.

Returns
float Distance between pointers in pixels.

getEventTime

Added in API level 8
public long getEventTime ()

Return the event time of the current event being processed.

Returns
long Current event time in milliseconds.

getFocusX

Added in API level 8
public float getFocusX ()

Get the X coordinate of the current gesture's focal point. If a gesture is in progress, the focal point is between each of the pointers forming the gesture. If isInProgress() would return false, the result of this function is undefined.

Returns
float X coordinate of the focal point in pixels.

getFocusY

Added in API level 8
public float getFocusY ()

Get the Y coordinate of the current gesture's focal point. If a gesture is in progress, the focal point is between each of the pointers forming the gesture. If isInProgress() would return false, the result of this function is undefined.

Returns
float Y coordinate of the focal point in pixels.

getPreviousSpan

Added in API level 8
public float getPreviousSpan ()

Return the previous average distance between each of the pointers forming the gesture in progress through the focal point.

Returns
float Previous distance between pointers in pixels.

getPreviousSpanX

Added in API level 11
public float getPreviousSpanX ()

Return the previous average X distance between each of the pointers forming the gesture in progress through the focal point.

Returns
float Previous distance between pointers in pixels.

getPreviousSpanY

Added in API level 11
public float getPreviousSpanY ()

Return the previous average Y distance between each of the pointers forming the gesture in progress through the focal point.

Returns
float Previous distance between pointers in pixels.

getScaleFactor

Added in API level 8
public float getScaleFactor ()

Return the scaling factor from the previous scale event to the current event. This value is defined as (getCurrentSpan() / getPreviousSpan()).

Returns
float The current scaling factor.

getTimeDelta

Added in API level 8
public long getTimeDelta ()

Return the time difference in milliseconds between the previous accepted scaling event and the current scaling event.

Returns
long Time difference since the last scaling event in milliseconds.

isInProgress

Added in API level 8
public boolean isInProgress ()

Returns true if a scale gesture is in progress.

Returns
boolean

isQuickScaleEnabled

Added in API level 19
public boolean isQuickScaleEnabled ()

Return whether the quick scale gesture, in which the user performs a double tap followed by a swipe, should perform scaling. .

Returns
boolean

isStylusScaleEnabled

Added in API level 23
public boolean isStylusScaleEnabled ()

Return whether the stylus scale gesture, in which the user uses a stylus and presses the button, should perform scaling.

Returns
boolean

onTouchEvent

Added in API level 8
public boolean onTouchEvent (MotionEvent event)

Accepts MotionEvents and dispatches events to a OnScaleGestureListener when appropriate.

Applications should pass a complete and consistent event stream to this method. A complete and consistent event stream involves all MotionEvents from the initial ACTION_DOWN to the final ACTION_UP or ACTION_CANCEL.

Parameters
event MotionEvent: The event to process This value cannot be null.

Returns
boolean true if the event was processed and the detector wants to receive the rest of the MotionEvents in this event stream.

setQuickScaleEnabled

Added in API level 19
public void setQuickScaleEnabled (boolean scales)

Set whether the associated OnScaleGestureListener should receive onScale callbacks when the user performs a doubleTap followed by a swipe. Note that this is enabled by default if the app targets API 19 and newer.

Parameters
scales boolean: true to enable quick scaling, false to disable

setStylusScaleEnabled

Added in API level 23
public void setStylusScaleEnabled (boolean scales)

Sets whether the associated OnScaleGestureListener should receive onScale callbacks when the user uses a stylus and presses the button. Note that this is enabled by default if the app targets API 23 and newer.

Parameters
scales boolean: true to enable stylus scaling, false to disable.