to top
Android APIs
public class

ScaleGestureDetector

extends Object
java.lang.Object
   ↳ android.view.ScaleGestureDetector

Class Overview

Detects scaling transformation gestures using the supplied MotionEvents. The ScaleGestureDetector.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 onTouchEvent(MotionEvent event)
Accepts MotionEvents and dispatches events to a ScaleGestureDetector.OnScaleGestureListener when appropriate.
void setQuickScaleEnabled(boolean scales)
Set whether the associated ScaleGestureDetector.OnScaleGestureListener should receive onScale callbacks when the user performs a doubleTap followed by a swipe.
[Expand]
Inherited Methods
From class java.lang.Object

Public Constructors

public ScaleGestureDetector (Context context, ScaleGestureDetector.OnScaleGestureListener listener)

Added in API level 8

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

Parameters
context the application's context
listener the listener invoked for all the callbacks, this must not be null.
Throws
NullPointerException if listener is null.

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

Added in API level 19

Creates a ScaleGestureDetector with the supplied listener.

Parameters
context the application's context
listener the listener invoked for all the callbacks, this must not be null.
handler the handler to use for running deferred listener events.
Throws
NullPointerException if listener is null.
See Also

Public Methods

public float getCurrentSpan ()

Added in API level 8

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

Returns
  • Distance between pointers in pixels.

public float getCurrentSpanX ()

Added in API level 11

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

Returns
  • Distance between pointers in pixels.

public float getCurrentSpanY ()

Added in API level 11

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

Returns
  • Distance between pointers in pixels.

public long getEventTime ()

Added in API level 8

Return the event time of the current event being processed.

Returns
  • Current event time in milliseconds.

public float getFocusX ()

Added in API level 8

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
  • X coordinate of the focal point in pixels.

public float getFocusY ()

Added in API level 8

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
  • Y coordinate of the focal point in pixels.

public float getPreviousSpan ()

Added in API level 8

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

Returns
  • Previous distance between pointers in pixels.

public float getPreviousSpanX ()

Added in API level 11

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

Returns
  • Previous distance between pointers in pixels.

public float getPreviousSpanY ()

Added in API level 11

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

Returns
  • Previous distance between pointers in pixels.

public float getScaleFactor ()

Added in API level 8

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

Returns
  • The current scaling factor.

public long getTimeDelta ()

Added in API level 8

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

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

public boolean isInProgress ()

Added in API level 8

Returns true if a scale gesture is in progress.

public boolean isQuickScaleEnabled ()

Added in API level 19

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

public boolean onTouchEvent (MotionEvent event)

Added in API level 8

Accepts MotionEvents and dispatches events to a ScaleGestureDetector.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 The event to process
Returns
  • true if the event was processed and the detector wants to receive the rest of the MotionEvents in this event stream.

public void setQuickScaleEnabled (boolean scales)

Added in API level 19

Set whether the associated ScaleGestureDetector.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 true to enable quick scaling, false to disable