# MotionEventBuilder

Artifact: [androidx.test:core](https://developer.android.com/jetpack/androidx/releases/test) [View Source](https://cs.android.com/search?q=file:androidx/test/core/view/MotionEventBuilder.java+class:androidx.test.core.view.MotionEventBuilder)

*** ** * ** ***


```
public class MotionEventBuilder
```

<br />

*** ** * ** ***

A helper builder for creating `https://developer.android.com/reference/android/view/MotionEvent.html`'s.

Default values for unspecified attributes are 0 unless otherwise noted.

## Summary

| ### Public methods |
|---|---|
| `https://developer.android.com/reference/android/view/MotionEvent.html` | `https://developer.android.com/reference/androidx/test/core/view/MotionEventBuilder#build()()` Returns a MotionEvent with the provided data or reasonable defaults. |
| `static https://developer.android.com/reference/androidx/test/core/view/MotionEventBuilder` | `https://developer.android.com/reference/androidx/test/core/view/MotionEventBuilder#newBuilder()()` Start building a new MotionEvent. |
| `https://developer.android.com/reference/androidx/test/core/view/MotionEventBuilder` | `https://developer.android.com/reference/androidx/test/core/view/MotionEventBuilder#setAction(int)(int action)` Sets the action. |
| `https://developer.android.com/reference/androidx/test/core/view/MotionEventBuilder` | `https://developer.android.com/reference/androidx/test/core/view/MotionEventBuilder#setActionIndex(int)(int pointerIndex)` Sets the pointer index associated with the action. |
| `https://developer.android.com/reference/androidx/test/core/view/MotionEventBuilder` | `https://developer.android.com/reference/androidx/test/core/view/MotionEventBuilder#setButtonState(int)(int buttonState)` Sets the button state. |
| `https://developer.android.com/reference/androidx/test/core/view/MotionEventBuilder` | `https://developer.android.com/reference/androidx/test/core/view/MotionEventBuilder#setDeviceId(int)(int deviceId)` Sets the device id. |
| `https://developer.android.com/reference/androidx/test/core/view/MotionEventBuilder` | `https://developer.android.com/reference/androidx/test/core/view/MotionEventBuilder#setDownTime(long)(long downTime)` Sets the down time. |
| `https://developer.android.com/reference/androidx/test/core/view/MotionEventBuilder` | `https://developer.android.com/reference/androidx/test/core/view/MotionEventBuilder#setEdgeFlags(int)(int edgeFlags)` Sets the edge flags. |
| `https://developer.android.com/reference/androidx/test/core/view/MotionEventBuilder` | `https://developer.android.com/reference/androidx/test/core/view/MotionEventBuilder#setEventTime(long)(long eventTime)` Sets the event time. |
| `https://developer.android.com/reference/androidx/test/core/view/MotionEventBuilder` | `https://developer.android.com/reference/androidx/test/core/view/MotionEventBuilder#setFlags(int)(int flags)` Sets the flags. |
| `https://developer.android.com/reference/androidx/test/core/view/MotionEventBuilder` | `https://developer.android.com/reference/androidx/test/core/view/MotionEventBuilder#setMetaState(int)(int metastate)` Sets the metaState. |
| `https://developer.android.com/reference/androidx/test/core/view/MotionEventBuilder` | `https://developer.android.com/reference/androidx/test/core/view/MotionEventBuilder#setPointer(android.view.MotionEvent.PointerProperties,android.view.MotionEvent.PointerCoords)( https://developer.android.com/reference/android/view/MotionEvent.PointerProperties.html pointerProperties, https://developer.android.com/reference/android/view/MotionEvent.PointerCoords.html pointerCoords )` An expanded variant of `https://developer.android.com/reference/androidx/test/core/view/MotionEventBuilder#setPointer(float,float)` that supports specifying all pointer properties and coords data. |
| `https://developer.android.com/reference/androidx/test/core/view/MotionEventBuilder` | `https://developer.android.com/reference/androidx/test/core/view/MotionEventBuilder#setPointer(float,float)(float x, float y)` Simple mechanism to add a pointer to the MotionEvent. |
| `https://developer.android.com/reference/androidx/test/core/view/MotionEventBuilder` | `https://developer.android.com/reference/androidx/test/core/view/MotionEventBuilder#setSource(int)(int source)` Sets the source. |
| `https://developer.android.com/reference/androidx/test/core/view/MotionEventBuilder` | `https://developer.android.com/reference/androidx/test/core/view/MotionEventBuilder#setXPrecision(float)(float xPrecision)` Sets the x precision. |
| `https://developer.android.com/reference/androidx/test/core/view/MotionEventBuilder` | `https://developer.android.com/reference/androidx/test/core/view/MotionEventBuilder#setYPrecision(float)(float yPrecision)` Sets the y precision. |

## Public methods

### build

```
public MotionEvent build()
```

Returns a MotionEvent with the provided data or reasonable defaults.

### newBuilder

```
public static MotionEventBuilder newBuilder()
```

Start building a new MotionEvent.

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/test/core/view/MotionEventBuilder` | a new MotionEventBuilder. |

### setAction

```
public MotionEventBuilder setAction(int action)
```

Sets the action. Default is MotionEvent.ACTION_DOWN.

| See also |
|---|---|
| `https://developer.android.com/reference/android/view/MotionEvent.html#getAction()` |   |

### setActionIndex

```
public MotionEventBuilder setActionIndex(int pointerIndex)
```

Sets the pointer index associated with the action.

| See also |
|---|---|
| `https://developer.android.com/reference/android/view/MotionEvent.html#getActionIndex()` |   |

### setButtonState

```
public MotionEventBuilder setButtonState(int buttonState)
```

Sets the button state.

| See also |
|---|---|
| `https://developer.android.com/reference/android/view/MotionEvent.html#getButtonState()` |   |

### setDeviceId

```
public MotionEventBuilder setDeviceId(int deviceId)
```

Sets the device id.

| See also |
|---|---|
| `https://developer.android.com/reference/android/view/MotionEvent.html#getDeviceId()` |   |

### setDownTime

```
public MotionEventBuilder setDownTime(long downTime)
```

Sets the down time.

| See also |
|---|---|
| `https://developer.android.com/reference/android/view/MotionEvent.html#getDownTime()` |   |

### setEdgeFlags

```
public MotionEventBuilder setEdgeFlags(int edgeFlags)
```

Sets the edge flags.

| See also |
|---|---|
| `https://developer.android.com/reference/android/view/MotionEvent.html#getEdgeFlags()` |   |

### setEventTime

```
public MotionEventBuilder setEventTime(long eventTime)
```

Sets the event time. Default is SystemClock.uptimeMillis().

| See also |
|---|---|
| `https://developer.android.com/reference/android/view/MotionEvent.html#getEventTime()` |   |

### setFlags

```
public MotionEventBuilder setFlags(int flags)
```

Sets the flags.

| See also |
|---|---|
| `https://developer.android.com/reference/android/view/MotionEvent.html#getFlags()` |   |

### setMetaState

```
public MotionEventBuilder setMetaState(int metastate)
```

Sets the metaState.

| See also |
|---|---|
| `https://developer.android.com/reference/android/view/MotionEvent.html#getMetaState()` |   |

### setPointer

```
public MotionEventBuilder setPointer(
    MotionEvent.PointerProperties pointerProperties,
    MotionEvent.PointerCoords pointerCoords
)
```

An expanded variant of `https://developer.android.com/reference/androidx/test/core/view/MotionEventBuilder#setPointer(float,float)` that supports specifying all pointer properties and coords data.

### setPointer

```
public MotionEventBuilder setPointer(float x, float y)
```

Simple mechanism to add a pointer to the MotionEvent.

Can be called multiple times to add multiple pointers to the event.

### setSource

```
public MotionEventBuilder setSource(int source)
```

Sets the source.

| See also |
|---|---|
| `https://developer.android.com/reference/android/view/MotionEvent.html#getSource()` |   |

### setXPrecision

```
public MotionEventBuilder setXPrecision(float xPrecision)
```

Sets the x precision.

| See also |
|---|---|
| `https://developer.android.com/reference/android/view/MotionEvent.html#getXPrecision()` |   |

### setYPrecision

```
public MotionEventBuilder setYPrecision(float yPrecision)
```

Sets the y precision.

| See also |
|---|---|
| `https://developer.android.com/reference/android/view/MotionEvent.html#getYPrecision()` |   |