# PathMotion

added in[version 26.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  
belongs to Maven artifact com.android.support:transition:28.0.0-alpha1  
Summary:[Ctors](https://developer.android.com/reference/android/support/transition/PathMotion#pubctors)\|[Methods](https://developer.android.com/reference/android/support/transition/PathMotion#pubmethods)\|[Inherited Methods](https://developer.android.com/reference/android/support/transition/PathMotion#inhmethods)\|[\[Expand All\]](https://developer.android.com/reference/android/support/transition/PathMotion#)  

# PathMotion

| This package is part of the Android[support library](https://developer.android.com/topic/libraries/support-library)which is no longer maintained. The support library has been superseded by[AndroidX](https://developer.android.com/jetpack/androidx)which is part of[Jetpack](https://developer.android.com/jetpack). We recommend using the AndroidX libraries in all new projects. You should also consider[migrating](https://developer.android.com/jetpack/androidx/migrate)existing projects to AndroidX. To find the AndroidX class that maps to this deprecated class, see the AndroidX support library[class mappings](https://developer.android.com/jetpack/androidx/migrate/class-mappings).

`
public


abstract
class
PathMotion
`  
`

extends Object


``


`

|---|---------------------------------------|
| java.lang.Object                         ||
| ↳ | android.support.transition.PathMotion |

|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [![](https://developer.android.com/static/assets/images/styles/disclosure_down.png)](https://developer.android.com/reference/android/support/transition/PathMotion#)Known Direct Subclasses [ArcMotion](https://developer.android.com/reference/android/support/transition/ArcMotion),[PatternPathMotion](https://developer.android.com/reference/android/support/transition/PatternPathMotion) |-----------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------| | [ArcMotion](https://developer.android.com/reference/android/support/transition/ArcMotion)                 | A PathMotion that generates a curved path along an arc on an imaginary circle containing the two points. | | [PatternPathMotion](https://developer.android.com/reference/android/support/transition/PatternPathMotion) | A PathMotion that takes a Path pattern and applies it to the separation between two points.              | |

<br />

*** ** * ** ***

This base class can be extended to provide motion along a Path to Transitions.

Transitions such as[ChangeBounds](https://developer.android.com/reference/android/transition/ChangeBounds.html)move Views, typically in a straight path between the start and end positions. Applications that desire to have these motions move in a curve can change how Views interpolate in two dimensions by extending PathMotion and implementing[getPath(float, float, float, float)](https://developer.android.com/reference/android/support/transition/PathMotion#getPath(float, float, float, float)).

This may be used in XML as an element inside a transition.  

     <changeBounds>
         <pathMotion class="my.app.transition.MyPathMotion"/>
     </changeBounds>
     
     
<br />

## Summary

|                                                                                                                                                                    ### Public constructors                                                                                                                                                                     ||
|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---|
| ` `[PathMotion](https://developer.android.com/reference/android/support/transition/PathMotion#PathMotion())`() `                                                                                                                                                                                                                                            |
| ` `[PathMotion](https://developer.android.com/reference/android/support/transition/PathMotion#PathMotion(android.content.Context, android.util.AttributeSet))`(`[Context](https://developer.android.com/reference/android/content/Context.html)` context, `[AttributeSet](https://developer.android.com/reference/android/util/AttributeSet.html)` attrs) ` |

|                                                                                                                                                                         ### Public methods                                                                                                                                                                          ||
|----------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| ` abstract `[Path](https://developer.android.com/reference/android/graphics/Path.html) | ` `[getPath](https://developer.android.com/reference/android/support/transition/PathMotion#getPath(float, float, float, float))`(float startX, float startY, float endX, float endY) ` Provide a Path to interpolate between two points`(startX, startY)`and`(endX, endY)`. |

| ### Inherited methods |
|-----------------------|---|
| [![](https://developer.android.com/static/assets/images/styles/disclosure_down.png)](https://developer.android.com/reference/android/support/transition/PathMotion#)From class` java.lang.Object ` |-------------------|-------------------------------| | ` Object`         | ` clone() `                   | | ` boolean`        | ` equals(Object arg0) `       | | ` void`           | ` finalize() `                | | ` final Class<?>` | ` getClass() `                | | ` int`            | ` hashCode() `                | | ` final void`     | ` notify() `                  | | ` final void`     | ` notifyAll() `               | | ` String`         | ` toString() `                | | ` final void`     | ` wait(long arg0, int arg1) ` | | ` final void`     | ` wait(long arg0) `           | | ` final void`     | ` wait() `                    | ||

## Public constructors

### PathMotion

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

```
PathMotion ()
```

<br />

<br />

### PathMotion

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

```
PathMotion (Context context, 
                AttributeSet attrs)
```

<br />

<br />

|            Parameters            ||
|-----------|-----------------------|
| `context` | `Context` <br />      |
| `attrs`   | `AttributeSet` <br /> |

## Public methods

### getPath

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

```
Path getPath (float startX, 
                float startY, 
                float endX, 
                float endY)
```

Provide a Path to interpolate between two points`(startX, startY)`and`(endX, endY)`. This allows controlled curved motion along two dimensions.

<br />

|                            Parameters                             ||
|----------|---------------------------------------------------------|
| `startX` | `float`: The x coordinate of the starting point. <br /> |
| `startY` | `float`: The y coordinate of the starting point. <br /> |
| `endX`   | `float`: The x coordinate of the ending point. <br />   |
| `endY`   | `float`: The y coordinate of the ending point. <br />   |

|                                                                                                                                                                          Returns                                                                                                                                                                          ||
|----------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [Path](https://developer.android.com/reference/android/graphics/Path.html) | A Path along which the points should be interpolated. The returned Path must start at point`(startX, startY)`, typically using[moveTo(float, float)](https://developer.android.com/reference/android/graphics/Path.html#moveTo(float, float))and end at`(endX, endY)`. <br /> |

-

  ## Interfaces

  - [Transition.TransitionListener](https://developer.android.com/reference/android/support/transition/Transition.TransitionListener)
-

  ## Classes

  - [ArcMotion](https://developer.android.com/reference/android/support/transition/ArcMotion)
  - [AutoTransition](https://developer.android.com/reference/android/support/transition/AutoTransition)
  - [ChangeBounds](https://developer.android.com/reference/android/support/transition/ChangeBounds)
  - [ChangeClipBounds](https://developer.android.com/reference/android/support/transition/ChangeClipBounds)
  - [ChangeImageTransform](https://developer.android.com/reference/android/support/transition/ChangeImageTransform)
  - [ChangeScroll](https://developer.android.com/reference/android/support/transition/ChangeScroll)
  - [ChangeTransform](https://developer.android.com/reference/android/support/transition/ChangeTransform)
  - [CircularPropagation](https://developer.android.com/reference/android/support/transition/CircularPropagation)
  - [Explode](https://developer.android.com/reference/android/support/transition/Explode)
  - [Fade](https://developer.android.com/reference/android/support/transition/Fade)
  - [PathMotion](https://developer.android.com/reference/android/support/transition/PathMotion)
  - [PatternPathMotion](https://developer.android.com/reference/android/support/transition/PatternPathMotion)
  - [R](https://developer.android.com/reference/android/support/transition/R)
  - [R.attr](https://developer.android.com/reference/android/support/transition/R.attr)
  - [R.bool](https://developer.android.com/reference/android/support/transition/R.bool)
  - [R.color](https://developer.android.com/reference/android/support/transition/R.color)
  - [R.dimen](https://developer.android.com/reference/android/support/transition/R.dimen)
  - [R.drawable](https://developer.android.com/reference/android/support/transition/R.drawable)
  - [R.id](https://developer.android.com/reference/android/support/transition/R.id)
  - [R.integer](https://developer.android.com/reference/android/support/transition/R.integer)
  - [R.layout](https://developer.android.com/reference/android/support/transition/R.layout)
  - [R.string](https://developer.android.com/reference/android/support/transition/R.string)
  - [R.style](https://developer.android.com/reference/android/support/transition/R.style)
  - [R.styleable](https://developer.android.com/reference/android/support/transition/R.styleable)
  - [Scene](https://developer.android.com/reference/android/support/transition/Scene)
  - [SidePropagation](https://developer.android.com/reference/android/support/transition/SidePropagation)
  - [Slide](https://developer.android.com/reference/android/support/transition/Slide)
  - [Transition](https://developer.android.com/reference/android/support/transition/Transition)
  - [Transition.EpicenterCallback](https://developer.android.com/reference/android/support/transition/Transition.EpicenterCallback)
  - [TransitionInflater](https://developer.android.com/reference/android/support/transition/TransitionInflater)
  - [TransitionListenerAdapter](https://developer.android.com/reference/android/support/transition/TransitionListenerAdapter)
  - [TransitionManager](https://developer.android.com/reference/android/support/transition/TransitionManager)
  - [TransitionPropagation](https://developer.android.com/reference/android/support/transition/TransitionPropagation)
  - [TransitionSet](https://developer.android.com/reference/android/support/transition/TransitionSet)
  - [TransitionValues](https://developer.android.com/reference/android/support/transition/TransitionValues)
  - [Visibility](https://developer.android.com/reference/android/support/transition/Visibility)
  - [VisibilityPropagation](https://developer.android.com/reference/android/support/transition/VisibilityPropagation)