Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels) Summary: [Ctors](https://developer.android.com/reference/android/view/ViewConfiguration#pubctors) \| [Methods](https://developer.android.com/reference/android/view/ViewConfiguration#pubmethods) \| [Inherited Methods](https://developer.android.com/reference/android/view/ViewConfiguration#inhmethods)

# ViewConfiguration

*** ** * ** ***

` public class ViewConfiguration `   
` extends https://developer.android.com/reference/java/lang/Object ` ` `

|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object) ||
| ↳ | android.view.ViewConfiguration |

<br />

*** ** * ** ***

Contains methods to standard constants used in the UI for timeouts, sizes, and distances.

## Summary

| ### Public constructors ||
|---|---|
| ` https://developer.android.com/reference/android/view/ViewConfiguration#ViewConfiguration()() ` *This constructor is deprecated. Use `https://developer.android.com/reference/android/view/ViewConfiguration#get(android.content.Context)` instead.* |

| ### Public methods ||
|---|---|
| ` static https://developer.android.com/reference/android/view/ViewConfiguration` | ` https://developer.android.com/reference/android/view/ViewConfiguration#get(android.content.Context)(https://developer.android.com/reference/android/content/Context context) ` Returns a configuration for the specified `https://developer.android.com/reference/android/content/Context`. |
| ` static float` | ` https://developer.android.com/reference/android/view/ViewConfiguration#getAmbiguousGestureMultiplier()() ` *This method was deprecated in API level 30. Use `https://developer.android.com/reference/android/view/ViewConfiguration#getScaledAmbiguousGestureMultiplier()`.* |
| ` static long` | ` https://developer.android.com/reference/android/view/ViewConfiguration#getDefaultActionModeHideDuration()() ` |
| ` static int` | ` https://developer.android.com/reference/android/view/ViewConfiguration#getDoubleTapTimeout()() ` |
| ` int` | ` https://developer.android.com/reference/android/view/ViewConfiguration#getDoubleTapTimeoutMillis()() ` |
| ` static int` | ` https://developer.android.com/reference/android/view/ViewConfiguration#getEdgeSlop()() ` *This method was deprecated in API level 15. Use `https://developer.android.com/reference/android/view/ViewConfiguration#getScaledEdgeSlop()` instead.* |
| ` static int` | ` https://developer.android.com/reference/android/view/ViewConfiguration#getFadingEdgeLength()() ` *This method was deprecated in API level 15. Use `https://developer.android.com/reference/android/view/ViewConfiguration#getScaledFadingEdgeLength()` instead.* |
| ` int` | ` https://developer.android.com/reference/android/view/ViewConfiguration#getFocusTraversalThreshold(int,%20int,%20int)(int inputDeviceId, int axis, int source) ` Provides the focus traversal threshold (in pixels) for a motion generated by a specific input device configuration and motion axis. |
| ` static long` | ` https://developer.android.com/reference/android/view/ViewConfiguration#getGlobalActionKeyTimeout()() ` *This method was deprecated in API level 20. This timeout should not be used by applications* |
| ` static int` | ` https://developer.android.com/reference/android/view/ViewConfiguration#getJumpTapTimeout()() ` |
| ` static int` | ` https://developer.android.com/reference/android/view/ViewConfiguration#getKeyRepeatDelay()() ` |
| ` static int` | ` https://developer.android.com/reference/android/view/ViewConfiguration#getKeyRepeatTimeout()() ` |
| ` static int` | ` https://developer.android.com/reference/android/view/ViewConfiguration#getLongPressTimeout()() ` Used for both key and motion events. |
| ` int` | ` https://developer.android.com/reference/android/view/ViewConfiguration#getLongPressTimeoutMillis()() ` |
| ` static int` | ` https://developer.android.com/reference/android/view/ViewConfiguration#getMaximumDrawingCacheSize()() ` *This method was deprecated in API level 15. Use `https://developer.android.com/reference/android/view/ViewConfiguration#getScaledMaximumDrawingCacheSize()` instead.* |
| ` static int` | ` https://developer.android.com/reference/android/view/ViewConfiguration#getMaximumFlingVelocity()() ` *This method was deprecated in API level 15. Use `https://developer.android.com/reference/android/view/ViewConfiguration#getScaledMaximumFlingVelocity()` instead.* |
| ` static int` | ` https://developer.android.com/reference/android/view/ViewConfiguration#getMinimumFlingVelocity()() ` *This method was deprecated in API level 15. Use `https://developer.android.com/reference/android/view/ViewConfiguration#getScaledMinimumFlingVelocity()` instead.* |
| ` static int` | ` https://developer.android.com/reference/android/view/ViewConfiguration#getMultiPressTimeout()() ` |
| ` int` | ` https://developer.android.com/reference/android/view/ViewConfiguration#getMultiPressTimeoutMillis()() ` |
| ` static int` | ` https://developer.android.com/reference/android/view/ViewConfiguration#getPressedStateDuration()() ` |
| ` float` | ` https://developer.android.com/reference/android/view/ViewConfiguration#getScaledAmbiguousGestureMultiplier()() ` The multiplication factor for inhibiting default gestures. |
| ` int` | ` https://developer.android.com/reference/android/view/ViewConfiguration#getScaledDoubleTapSlop()() ` |
| ` int` | ` https://developer.android.com/reference/android/view/ViewConfiguration#getScaledEdgeSlop()() ` |
| ` int` | ` https://developer.android.com/reference/android/view/ViewConfiguration#getScaledFadingEdgeLength()() ` |
| ` int` | ` https://developer.android.com/reference/android/view/ViewConfiguration#getScaledHandwritingGestureLineMargin()() ` |
| ` int` | ` https://developer.android.com/reference/android/view/ViewConfiguration#getScaledHandwritingSlop()() ` |
| ` float` | ` https://developer.android.com/reference/android/view/ViewConfiguration#getScaledHorizontalScrollFactor()() ` |
| ` int` | ` https://developer.android.com/reference/android/view/ViewConfiguration#getScaledHoverSlop()() ` |
| ` int` | ` https://developer.android.com/reference/android/view/ViewConfiguration#getScaledMaximumDrawingCacheSize()() ` The maximum drawing cache size expressed in bytes. |
| ` int` | ` https://developer.android.com/reference/android/view/ViewConfiguration#getScaledMaximumFlingVelocity(int,%20int,%20int)(int inputDeviceId, int axis, int source) ` Maximum absolute value of velocity to initiate a fling for a motion generated by an `https://developer.android.com/reference/android/view/InputDevice` with an id of `inputDeviceId`, from an input `source` and on a given motion event `axis`. |
| ` int` | ` https://developer.android.com/reference/android/view/ViewConfiguration#getScaledMaximumFlingVelocity()() ` |
| ` int` | ` https://developer.android.com/reference/android/view/ViewConfiguration#getScaledMinimumFlingVelocity()() ` |
| ` int` | ` https://developer.android.com/reference/android/view/ViewConfiguration#getScaledMinimumFlingVelocity(int,%20int,%20int)(int inputDeviceId, int axis, int source) ` Minimum absolute value of velocity to initiate a fling for a motion generated by an `https://developer.android.com/reference/android/view/InputDevice` with an id of `inputDeviceId`, from an input `source` and on a given motion event `axis`. |
| ` int` | ` https://developer.android.com/reference/android/view/ViewConfiguration#getScaledMinimumScalingSpan()() ` Retrieves the distance in pixels between touches that must be reached for a gesture to be interpreted as scaling. |
| ` int` | ` https://developer.android.com/reference/android/view/ViewConfiguration#getScaledOverflingDistance()() ` |
| ` int` | ` https://developer.android.com/reference/android/view/ViewConfiguration#getScaledOverscrollDistance()() ` |
| ` int` | ` https://developer.android.com/reference/android/view/ViewConfiguration#getScaledPagingTouchSlop()() ` |
| ` int` | ` https://developer.android.com/reference/android/view/ViewConfiguration#getScaledScrollBarSize()() ` |
| ` int` | ` https://developer.android.com/reference/android/view/ViewConfiguration#getScaledTouchSlop()() ` |
| ` float` | ` https://developer.android.com/reference/android/view/ViewConfiguration#getScaledVerticalScrollFactor()() ` |
| ` int` | ` https://developer.android.com/reference/android/view/ViewConfiguration#getScaledWindowTouchSlop()() ` |
| ` static int` | ` https://developer.android.com/reference/android/view/ViewConfiguration#getScrollBarFadeDuration()() ` |
| ` static int` | ` https://developer.android.com/reference/android/view/ViewConfiguration#getScrollBarSize()() ` *This method was deprecated in API level 15. Use `https://developer.android.com/reference/android/view/ViewConfiguration#getScaledScrollBarSize()` instead.* |
| ` static int` | ` https://developer.android.com/reference/android/view/ViewConfiguration#getScrollDefaultDelay()() ` |
| ` static float` | ` https://developer.android.com/reference/android/view/ViewConfiguration#getScrollFriction()() ` The amount of friction applied to scrolls and flings. |
| ` float` | ` https://developer.android.com/reference/android/view/ViewConfiguration#getScrollFrictionAmount()() ` The amount of friction applied to scrolls and flings. |
| ` static int` | ` https://developer.android.com/reference/android/view/ViewConfiguration#getTapTimeout()() ` |
| ` int` | ` https://developer.android.com/reference/android/view/ViewConfiguration#getTapTimeoutMillis()() ` |
| ` int` | ` https://developer.android.com/reference/android/view/ViewConfiguration#getTextCursorBlinkIntervalMillis()() ` Returns the duration in milliseconds of the text cursor blink interval, which is the elapsed time between inversions of the color of the text cursor's pixels. |
| ` static int` | ` https://developer.android.com/reference/android/view/ViewConfiguration#getTouchSlop()() ` *This method was deprecated in API level 15. Use `https://developer.android.com/reference/android/view/ViewConfiguration#getScaledTouchSlop()` instead.* |
| ` static int` | ` https://developer.android.com/reference/android/view/ViewConfiguration#getWindowTouchSlop()() ` *This method was deprecated in API level 15. Use `https://developer.android.com/reference/android/view/ViewConfiguration#getScaledWindowTouchSlop()` instead.* |
| ` static long` | ` https://developer.android.com/reference/android/view/ViewConfiguration#getZoomControlsTimeout()() ` The amount of time that the zoom controls should be displayed on the screen expressed in milliseconds. |
| ` boolean` | ` https://developer.android.com/reference/android/view/ViewConfiguration#hasPermanentMenuKey()() ` Report if the device has a permanent menu key available to the user. |
| ` boolean` | ` https://developer.android.com/reference/android/view/ViewConfiguration#isFocusNavigationEnabled(int,%20int,%20int)(int inputDeviceId, int axis, int source) ` Checks whether focus navigation is enabled for a motion generated by a specific input device configuration and motion axis. |
| ` boolean` | ` https://developer.android.com/reference/android/view/ViewConfiguration#shouldShowMenuShortcutsWhenKeyboardPresent()() ` Check if shortcuts should be displayed in menus. |

### Inherited methods

From class ` https://developer.android.com/reference/java/lang/Object ` ` https://developer.android.com/reference/java/lang/Object` ` https://developer.android.com/reference/java/lang/Object#clone()() `

Creates and returns a copy of this object.
` boolean` ` https://developer.android.com/reference/java/lang/Object#equals(java.lang.Object)(https://developer.android.com/reference/java/lang/Object obj) `

Indicates whether some other object is "equal to" this one.
` void` ` https://developer.android.com/reference/java/lang/Object#finalize()() `

Called by the garbage collector on an object when garbage collection determines that there are no more references to the object.
` final https://developer.android.com/reference/java/lang/Class<?>` ` https://developer.android.com/reference/java/lang/Object#getClass()() `

Returns the runtime class of this `Object`.
` int` ` https://developer.android.com/reference/java/lang/Object#hashCode()() `

Returns a hash code value for the object.
` final void` ` https://developer.android.com/reference/java/lang/Object#notify()() `

Wakes up a single thread that is waiting on this object's monitor.
` final void` ` https://developer.android.com/reference/java/lang/Object#notifyAll()() `

Wakes up all threads that are waiting on this object's monitor.
` https://developer.android.com/reference/java/lang/String` ` https://developer.android.com/reference/java/lang/Object#toString()() `

Returns a string representation of the object.
` final void` ` https://developer.android.com/reference/java/lang/Object#wait(long,%20int)(long timeoutMillis, int nanos) `

Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed.
` final void` ` https://developer.android.com/reference/java/lang/Object#wait(long)(long timeoutMillis) `

Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed.
` final void` ` https://developer.android.com/reference/java/lang/Object#wait()() `

Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*.

## Public constructors

### ViewConfiguration

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public ViewConfiguration ()
```

<br />

**This constructor is deprecated.**   

Use `https://developer.android.com/reference/android/view/ViewConfiguration#get(android.content.Context)` instead.

<br />

<br />

## Public methods

### get

Added in [API level 3](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static ViewConfiguration get (Context context)
```

Returns a configuration for the specified `https://developer.android.com/reference/android/content/Context`. The configuration depends on various parameters of the `https://developer.android.com/reference/android/content/Context`, like the dimension of the display or the density of the display.

<br />

| Parameters ||
|---|---|
| `context` | `Context`: A visual `https://developer.android.com/reference/android/content/Context` is preferred to initialize the view configuration. It should ideally be an `https://developer.android.com/reference/android/app/Activity` or other `https://developer.android.com/reference/android/content/Context` created with `https://developer.android.com/reference/android/content/Context#createWindowContext(int,%20android.os.Bundle)`, but is not required to be. This value cannot be `null`. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/view/ViewConfiguration` | <br /> |

### getAmbiguousGestureMultiplier

Added in [API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)   
Deprecated in [API level 30](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static float getAmbiguousGestureMultiplier ()
```

<br />

**This method was deprecated in API level 30.**   

Use `https://developer.android.com/reference/android/view/ViewConfiguration#getScaledAmbiguousGestureMultiplier()`.

The multiplication factor for inhibiting default gestures. If a MotionEvent has `https://developer.android.com/reference/android/view/MotionEvent#CLASSIFICATION_AMBIGUOUS_GESTURE` set, then certain actions, such as scrolling, will be inhibited. However, to account for the possibility of an incorrect classification, existing gesture thresholds (e.g. scrolling touch slop and the long-press timeout) should be scaled by this factor and remain in effect.

<br />

| Returns ||
|---|---|
| `float` | Value is 1.0f or greater <br /> |

### getDefaultActionModeHideDuration

Added in [API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static long getDefaultActionModeHideDuration ()
```

<br />

<br />

| Returns ||
|---|---|
| `long` | the default duration in milliseconds for `https://developer.android.com/reference/android/view/ActionMode#hide(long)`. <br /> |

### getDoubleTapTimeout

Added in [API level 3](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static int getDoubleTapTimeout ()
```

<br />

<br />

| Returns ||
|---|---|
| `int` | the duration in milliseconds between the first tap's up event and the second tap's down event for an interaction to be considered a double-tap. <br /> |

### getDoubleTapTimeoutMillis

Added in [version 36.1](https://developer.android.com/topic/libraries/support-library/revisions)

```
public int getDoubleTapTimeoutMillis ()
```

<br />

<br />

| Returns ||
|---|---|
| `int` | the duration in milliseconds between the first tap's up event and the second tap's down event for an interaction to be considered a double-tap. <br /> |

### getEdgeSlop

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)   
Deprecated in [API level 15](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static int getEdgeSlop ()
```

<br />

**This method was deprecated in API level 15.**   

Use `https://developer.android.com/reference/android/view/ViewConfiguration#getScaledEdgeSlop()` instead.

<br />

<br />

| Returns ||
|---|---|
| `int` | Inset in dips to look for touchable content when the user touches the edge of the screen <br /> |

### getFadingEdgeLength

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)   
Deprecated in [API level 15](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static int getFadingEdgeLength ()
```

<br />

**This method was deprecated in API level 15.**   

Use `https://developer.android.com/reference/android/view/ViewConfiguration#getScaledFadingEdgeLength()` instead.

<br />

<br />

| Returns ||
|---|---|
| `int` | the length of the fading edges in dips <br /> |

### getFocusTraversalThreshold

Added in [version 37.1](https://developer.android.com/topic/libraries/support-library/revisions)

```
public int getFocusTraversalThreshold (int inputDeviceId, 
                int axis, 
                int source)
```

Provides the focus traversal threshold (in pixels) for a motion generated by a specific input device configuration and motion axis.

Focus traversal threshold here refers to the minimum movement distance required to trigger a focus traversal event.

<br />

| Parameters ||
|---|---|
| `inputDeviceId` | `int`: the ID of the `https://developer.android.com/reference/android/view/InputDevice` that generated the motion. <br /> |
| `axis` | `int`: the axis of the motion. <br /> |
| `source` | `int`: the input source of the motion. <br /> |

| Returns ||
|---|---|
| `int` | the focus traversal threshold in pixels. If focus traversal is not supported for the given configuration, this method returns -1. <br /> |

### getGlobalActionKeyTimeout

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)   
Deprecated in [API level 20](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static long getGlobalActionKeyTimeout ()
```

<br />

**This method was deprecated in API level 20.**   

This timeout should not be used by applications

The amount of time a user needs to press the relevant key to bring up the global actions dialog.

<br />

| Returns ||
|---|---|
| `long` | how long a user needs to press the relevant key to bring up the global actions dialog. <br /> |

### getJumpTapTimeout

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static int getJumpTapTimeout ()
```

<br />

<br />

| Returns ||
|---|---|
| `int` | the duration in milliseconds we will wait to see if a touch event is a jump tap. If the user does not move within this interval, it is considered to be a tap. <br /> |

### getKeyRepeatDelay

Added in [API level 12](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static int getKeyRepeatDelay ()
```

<br />

<br />

| Returns ||
|---|---|
| `int` | the time between successive key repeats in milliseconds. <br /> |

### getKeyRepeatTimeout

Added in [API level 12](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static int getKeyRepeatTimeout ()
```

<br />

<br />

| Returns ||
|---|---|
| `int` | the time before the first key repeat in milliseconds. <br /> |

### getLongPressTimeout

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static int getLongPressTimeout ()
```

Used for both key and motion events.

<br />

| Returns ||
|---|---|
| `int` | the duration in milliseconds before a press turns into a long press <br /> |

### getLongPressTimeoutMillis

Added in [version 36.1](https://developer.android.com/topic/libraries/support-library/revisions)

```
public int getLongPressTimeoutMillis ()
```

<br />

<br />

| Returns ||
|---|---|
| `int` | the duration in milliseconds before a press turns into a long press. <br /> |

### getMaximumDrawingCacheSize

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)   
Deprecated in [API level 15](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static int getMaximumDrawingCacheSize ()
```

<br />

**This method was deprecated in API level 15.**   

Use `https://developer.android.com/reference/android/view/ViewConfiguration#getScaledMaximumDrawingCacheSize()` instead.

The maximum drawing cache size expressed in bytes.

<br />

| Returns ||
|---|---|
| `int` | the maximum size of View's drawing cache expressed in bytes <br /> |

### getMaximumFlingVelocity

Added in [API level 4](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)   
Deprecated in [API level 15](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static int getMaximumFlingVelocity ()
```

<br />

**This method was deprecated in API level 15.**   

Use `https://developer.android.com/reference/android/view/ViewConfiguration#getScaledMaximumFlingVelocity()` instead.

<br />

<br />

| Returns ||
|---|---|
| `int` | Maximum velocity to initiate a fling, as measured in dips per second. <br /> |

### getMinimumFlingVelocity

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)   
Deprecated in [API level 15](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static int getMinimumFlingVelocity ()
```

<br />

**This method was deprecated in API level 15.**   

Use `https://developer.android.com/reference/android/view/ViewConfiguration#getScaledMinimumFlingVelocity()` instead.

<br />

<br />

| Returns ||
|---|---|
| `int` | Minimum velocity to initiate a fling, as measured in dips per second. <br /> |

### getMultiPressTimeout

Added in [API level 31](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static int getMultiPressTimeout ()
```

<br />

<br />

| Returns ||
|---|---|
| `int` | the duration in milliseconds between the first tap's up event and the second tap's down event for an interaction to be considered part of the same multi-press. <br /> |

### getMultiPressTimeoutMillis

Added in [version 36.1](https://developer.android.com/topic/libraries/support-library/revisions)

```
public int getMultiPressTimeoutMillis ()
```

<br />

<br />

| Returns ||
|---|---|
| `int` | the duration in milliseconds between the first tap's up event and the second tap's down event for an interaction to be considered part of the same multi-press. <br /> |

### getPressedStateDuration

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static int getPressedStateDuration ()
```

<br />

<br />

| Returns ||
|---|---|
| `int` | the duration in milliseconds of the pressed state in child components. <br /> |

### getScaledAmbiguousGestureMultiplier

Added in [API level 30](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public float getScaledAmbiguousGestureMultiplier ()
```

The multiplication factor for inhibiting default gestures. If a MotionEvent has `https://developer.android.com/reference/android/view/MotionEvent#CLASSIFICATION_AMBIGUOUS_GESTURE` set, then certain actions, such as scrolling, will be inhibited. However, to account for the possibility of an incorrect classification, existing gesture thresholds (e.g. scrolling touch slop and the long-press timeout) should be scaled by this factor and remain in effect.

<br />

| Returns ||
|---|---|
| `float` | Value is 1.0f or greater <br /> |

### getScaledDoubleTapSlop

Added in [API level 3](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public int getScaledDoubleTapSlop ()
```

<br />

<br />

| Returns ||
|---|---|
| `int` | Distance in pixels between the first touch and second touch to still be considered a double tap <br /> |

### getScaledEdgeSlop

Added in [API level 3](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public int getScaledEdgeSlop ()
```

<br />

<br />

| Returns ||
|---|---|
| `int` | Inset in pixels to look for touchable content when the user touches the edge of the screen <br /> |

### getScaledFadingEdgeLength

Added in [API level 3](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public int getScaledFadingEdgeLength ()
```

<br />

<br />

| Returns ||
|---|---|
| `int` | the length of the fading edges in pixels <br /> |

### getScaledHandwritingGestureLineMargin

Added in [API level 34](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public int getScaledHandwritingGestureLineMargin ()
```

<br />

<br />

| Returns ||
|---|---|
| `int` | margin in pixels around text line bounds where stylus handwriting gestures should be supported. <br /> |

### getScaledHandwritingSlop

Added in [API level 34](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public int getScaledHandwritingSlop ()
```

<br />

<br />

| Returns ||
|---|---|
| `int` | Distance in pixels a stylus touch can wander before we think the user is handwriting. <br /> |

### getScaledHorizontalScrollFactor

Added in [API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public float getScaledHorizontalScrollFactor ()
```

<br />

<br />

| Returns ||
|---|---|
| `float` | Amount to scroll in response to a horizontal `https://developer.android.com/reference/android/view/MotionEvent#ACTION_SCROLL` event. Multiply this by the event's axis value to obtain the number of pixels to be scrolled. <br /> |

### getScaledHoverSlop

Added in [API level 28](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public int getScaledHoverSlop ()
```

<br />

<br />

| Returns ||
|---|---|
| `int` | Distance in pixels a hover can wander while it is still considered "stationary". <br /> |

### getScaledMaximumDrawingCacheSize

Added in [API level 3](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public int getScaledMaximumDrawingCacheSize ()
```

The maximum drawing cache size expressed in bytes.

<br />

| Returns ||
|---|---|
| `int` | the maximum size of View's drawing cache expressed in bytes <br /> |

### getScaledMaximumFlingVelocity

Added in [API level 34](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public int getScaledMaximumFlingVelocity (int inputDeviceId, 
                int axis, 
                int source)
```

Maximum absolute value of velocity to initiate a fling for a motion generated by an `https://developer.android.com/reference/android/view/InputDevice` with an id of `inputDeviceId`, from an input `source` and on a given motion event `axis`.

Similar to `https://developer.android.com/reference/android/view/ViewConfiguration#getScaledMinimumFlingVelocity(int,%20int,%20int)`, but for maximum fling velocity, instead of minimum. Also, unlike that method which returns `Integer.MAX_VALUE` for bad input device ID, source and/or motion event axis inputs, this method returns `Integer.MIN_VALUE` for such bad inputs.

<br />

| Parameters ||
|---|---|
| `inputDeviceId` | `int` <br /> |
| `axis` | `int` <br /> |
| `source` | `int` <br /> |

| Returns ||
|---|---|
| `int` | <br /> |

### getScaledMaximumFlingVelocity

Added in [API level 4](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public int getScaledMaximumFlingVelocity ()
```

<br />

<br />

| Returns ||
|---|---|
| `int` | Maximum velocity to initiate a fling, as measured in pixels per second. <br /> |

### getScaledMinimumFlingVelocity

Added in [API level 3](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public int getScaledMinimumFlingVelocity ()
```

<br />

<br />

| Returns ||
|---|---|
| `int` | Minimum velocity to initiate a fling, as measured in pixels per second. <br /> |

### getScaledMinimumFlingVelocity

Added in [API level 34](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public int getScaledMinimumFlingVelocity (int inputDeviceId, 
                int axis, 
                int source)
```

Minimum absolute value of velocity to initiate a fling for a motion generated by an `https://developer.android.com/reference/android/view/InputDevice` with an id of `inputDeviceId`, from an input `source` and on a given motion event `axis`.

Before utilizing this method to get a minimum fling velocity for a motion generated by the input device, scale the velocity of the motion events generated by the input device to pixels per second.

For instance, if you tracked `https://developer.android.com/reference/android/view/MotionEvent#AXIS_SCROLL` vertical velocities generated from a `https://developer.android.com/reference/android/view/InputDevice#SOURCE_ROTARY_ENCODER`, the velocity returned from `https://developer.android.com/reference/android/view/VelocityTracker` will be in the units with which the axis values were reported in the motion event. Before comparing that velocity against the minimum fling velocity specified here, make sure that the `https://developer.android.com/reference/android/view/MotionEvent#AXIS_SCROLL` velocity from the tracker is calculated in "units per second" (see `https://developer.android.com/reference/android/view/VelocityTracker#computeCurrentVelocity(int)`, `https://developer.android.com/reference/android/view/VelocityTracker#computeCurrentVelocity(int,%20float)` to adjust your velocity computations to "per second"), and use `https://developer.android.com/reference/android/view/ViewConfiguration#getScaledVerticalScrollFactor()` to change this velocity value to "pixels/second".

If the provided `inputDeviceId` is not valid, or if the input device whose ID is provided does not support the given motion event source and/or axis, this method will return `Integer.MAX_VALUE`.

### Obtaining the correct arguments for this method call

**inputDeviceId** : if calling this method in response to a `https://developer.android.com/reference/android/view/MotionEvent`, use the device ID that is reported by the event, which can be obtained using `https://developer.android.com/reference/android/view/MotionEvent#getDeviceId()`. Otherwise, use a valid ID that is obtained from `https://developer.android.com/reference/android/view/InputDevice#getId()`, or from an `https://developer.android.com/reference/android/hardware/input/InputManager` instance (`https://developer.android.com/reference/android/hardware/input/InputManager#getInputDeviceIds()` gives all the valid input device IDs).

**axis** : a `https://developer.android.com/reference/android/view/MotionEvent` may report data for multiple axes, and each axis may have multiple data points for different pointers. Use the axis for which you obtained the velocity for (`https://developer.android.com/reference/android/view/VelocityTracker` lets you calculate velocities for a specific axis. Use the axis for which you calculated velocity). You can use `https://developer.android.com/reference/android/view/InputDevice#getMotionRanges()` to get all the `https://developer.android.com/reference/android/view/InputDevice.MotionRange`s for the `https://developer.android.com/reference/android/view/InputDevice`, from which you can derive all the valid axes for the device.

**source** : use `https://developer.android.com/reference/android/view/MotionEvent#getSource()` if calling this method in response to a `https://developer.android.com/reference/android/view/MotionEvent`. Otherwise, use a valid source for the `https://developer.android.com/reference/android/view/InputDevice`. You can use `https://developer.android.com/reference/android/view/InputDevice#getMotionRanges()` to get all the `https://developer.android.com/reference/android/view/InputDevice.MotionRange`s for the `https://developer.android.com/reference/android/view/InputDevice`, from which you can derive all the valid sources for the device.

This method optimizes calls over multiple input device IDs, so caching the return value of the method is not necessary if you are handling multiple input devices.

<br />

| Parameters ||
|---|---|
| `inputDeviceId` | `int`: the ID of the `https://developer.android.com/reference/android/view/InputDevice` that generated the motion triggering fling. <br /> |
| `axis` | `int`: the axis on which the motion triggering the fling happened. This axis should be a valid axis that can be reported by the provided input device from the provided input device source. <br /> |
| `source` | `int`: the input source of the motion causing fling. This source should be a valid source for the `https://developer.android.com/reference/android/view/InputDevice` whose ID is `inputDeviceId`. <br /> |

| Returns ||
|---|---|
| `int` | the minimum velocity, in pixels/second, to trigger fling. <br /> |

**See also:**

- `https://developer.android.com/reference/android/view/InputDevice#getMotionRange(int,%20int)`
- `https://developer.android.com/reference/android/view/InputDevice#getMotionRanges()`
- `https://developer.android.com/reference/android/view/VelocityTracker#getAxisVelocity(int,%20int)`
- `https://developer.android.com/reference/android/view/VelocityTracker#getAxisVelocity(int)`

### getScaledMinimumScalingSpan

Added in [API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public int getScaledMinimumScalingSpan ()
```

Retrieves the distance in pixels between touches that must be reached for a gesture to be interpreted as scaling. In general, scaling shouldn't start until this distance has been met or surpassed, and scaling should end when the distance in pixels between touches drops below this distance.

<br />

| Returns ||
|---|---|
| `int` | The distance in pixels <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalStateException` | if this method is called on a ViewConfiguration that was instantiated using a constructor with no Context parameter. |

### getScaledOverflingDistance

Added in [API level 9](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public int getScaledOverflingDistance ()
```

<br />

<br />

| Returns ||
|---|---|
| `int` | The maximum distance a View should overfling by when showing edge effects (in pixels). <br /> |

### getScaledOverscrollDistance

Added in [API level 9](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public int getScaledOverscrollDistance ()
```

<br />

<br />

| Returns ||
|---|---|
| `int` | The maximum distance a View should overscroll by when showing edge effects (in pixels). <br /> |

### getScaledPagingTouchSlop

Added in [API level 8](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public int getScaledPagingTouchSlop ()
```

<br />

<br />

| Returns ||
|---|---|
| `int` | Distance in pixels a touch can wander before we think the user is scrolling a full page <br /> |

### getScaledScrollBarSize

Added in [API level 3](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public int getScaledScrollBarSize ()
```

<br />

<br />

| Returns ||
|---|---|
| `int` | The width of the horizontal scrollbar and the height of the vertical scrollbar in pixels <br /> |

### getScaledTouchSlop

Added in [API level 3](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public int getScaledTouchSlop ()
```

<br />

<br />

| Returns ||
|---|---|
| `int` | Distance in pixels a touch can wander before we think the user is scrolling <br /> |

### getScaledVerticalScrollFactor

Added in [API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public float getScaledVerticalScrollFactor ()
```

<br />

<br />

| Returns ||
|---|---|
| `float` | Amount to scroll in response to a vertical `https://developer.android.com/reference/android/view/MotionEvent#ACTION_SCROLL` event. Multiply this by the event's axis value to obtain the number of pixels to be scrolled. <br /> |

### getScaledWindowTouchSlop

Added in [API level 3](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public int getScaledWindowTouchSlop ()
```

<br />

<br />

| Returns ||
|---|---|
| `int` | Distance in pixels a touch must be outside the bounds of a window for it to be counted as outside the window for purposes of dismissing that window. <br /> |

### getScrollBarFadeDuration

Added in [API level 5](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static int getScrollBarFadeDuration ()
```

<br />

<br />

| Returns ||
|---|---|
| `int` | Duration of the fade when scrollbars fade away in milliseconds <br /> |

### getScrollBarSize

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)   
Deprecated in [API level 15](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static int getScrollBarSize ()
```

<br />

**This method was deprecated in API level 15.**   

Use `https://developer.android.com/reference/android/view/ViewConfiguration#getScaledScrollBarSize()` instead.

<br />

<br />

| Returns ||
|---|---|
| `int` | The width of the horizontal scrollbar and the height of the vertical scrollbar in dips <br /> |

### getScrollDefaultDelay

Added in [API level 5](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static int getScrollDefaultDelay ()
```

<br />

<br />

| Returns ||
|---|---|
| `int` | Default delay before the scrollbars fade in milliseconds <br /> |

### getScrollFriction

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static float getScrollFriction ()
```

The amount of friction applied to scrolls and flings.

<br />

| Returns ||
|---|---|
| `float` | A scalar dimensionless value representing the coefficient of friction. <br /> |

### getScrollFrictionAmount

Added in [version 36.1](https://developer.android.com/topic/libraries/support-library/revisions)

```
public float getScrollFrictionAmount ()
```

The amount of friction applied to scrolls and flings.

<br />

| Returns ||
|---|---|
| `float` | A scalar dimensionless value representing the coefficient of friction. <br /> |

### getTapTimeout

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static int getTapTimeout ()
```

<br />

<br />

| Returns ||
|---|---|
| `int` | the duration in milliseconds we will wait to see if a touch event is a tap or a scroll. If the user does not move within this interval, it is considered to be a tap. <br /> |

### getTapTimeoutMillis

Added in [version 36.1](https://developer.android.com/topic/libraries/support-library/revisions)

```
public int getTapTimeoutMillis ()
```

<br />

<br />

| Returns ||
|---|---|
| `int` | the duration in milliseconds we will wait to see if a touch event is a tap or a scroll. If the user does not move within this interval, it is considered to be a tap. <br /> |

### getTextCursorBlinkIntervalMillis

Added in [version 36.1](https://developer.android.com/topic/libraries/support-library/revisions)

```
public int getTextCursorBlinkIntervalMillis ()
```

Returns the duration in milliseconds of the text cursor blink interval, which is the elapsed time between inversions of the color of the text cursor's pixels.

The value is user-configurable and is constrained to the following range:

- 0 (don't blink)
- \>= 333 (fast blink, the minimum blink interval that is comfortable for photosensitivity)

<br />

<br />

| Returns ||
|---|---|
| `int` | the duration in milliseconds of the text cursor blink interval <br /> |

### getTouchSlop

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)   
Deprecated in [API level 15](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static int getTouchSlop ()
```

<br />

**This method was deprecated in API level 15.**   

Use `https://developer.android.com/reference/android/view/ViewConfiguration#getScaledTouchSlop()` instead.

<br />

<br />

| Returns ||
|---|---|
| `int` | Distance in dips a touch can wander before we think the user is scrolling <br /> |

### getWindowTouchSlop

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)   
Deprecated in [API level 15](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static int getWindowTouchSlop ()
```

<br />

**This method was deprecated in API level 15.**   

Use `https://developer.android.com/reference/android/view/ViewConfiguration#getScaledWindowTouchSlop()` instead.

<br />

<br />

| Returns ||
|---|---|
| `int` | Distance in dips a touch must be outside the bounds of a window for it to be counted as outside the window for purposes of dismissing that window. <br /> |

### getZoomControlsTimeout

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static long getZoomControlsTimeout ()
```

The amount of time that the zoom controls should be displayed on the screen expressed in milliseconds.

<br />

| Returns ||
|---|---|
| `long` | the time the zoom controls should be visible expressed in milliseconds. <br /> |

### hasPermanentMenuKey

Added in [API level 14](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public boolean hasPermanentMenuKey ()
```

Report if the device has a permanent menu key available to the user.

As of Android 3.0, devices may not have a permanent menu key available. Apps should use the action bar to present menu options to users. However, there are some apps where the action bar is inappropriate or undesirable. This method may be used to detect if a menu key is present. If not, applications should provide another on-screen affordance to access functionality.

<br />

| Returns ||
|---|---|
| `boolean` | true if a permanent menu key is present, false otherwise. <br /> |

### isFocusNavigationEnabled

Added in [version 37.1](https://developer.android.com/topic/libraries/support-library/revisions)

```
public boolean isFocusNavigationEnabled (int inputDeviceId, 
                int axis, 
                int source)
```

Checks whether focus navigation is enabled for a motion generated by a specific input device configuration and motion axis.

When enabled, the input should be used for focus navigation and highlighting in addition to or instead of scrolling. This allows for a touch-free navigation experience.

<br />

| Parameters ||
|---|---|
| `inputDeviceId` | `int`: the ID of the `https://developer.android.com/reference/android/view/InputDevice` that generated the motion. <br /> |
| `axis` | `int`: the axis of the motion. <br /> |
| `source` | `int`: the input source of the motion. <br /> |

| Returns ||
|---|---|
| `boolean` | `true` if focus navigation is enabled for the given configuration. <br /> |

### shouldShowMenuShortcutsWhenKeyboardPresent

Added in [API level 28](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public boolean shouldShowMenuShortcutsWhenKeyboardPresent ()
```

Check if shortcuts should be displayed in menus.

<br />

| Returns ||
|---|---|
| `boolean` | `True` if shortcuts should be displayed in menus. <br /> |