# EasingFunction

Artifact: [androidx.ink:ink-brush](https://developer.android.com/jetpack/androidx/releases/ink) [View Source](https://cs.android.com/search?q=file:androidx/ink/brush/behavior/EasingFunction.kt+class:androidx.ink.brush.behavior.EasingFunction) Added in [1.1.0-alpha11](https://developer.android.com/jetpack/androidx/releases/ink#1.1.0-alpha11)

*** ** * ** ***


```
public abstract class EasingFunction
```

<br />

Known direct subclasses [EasingFunction.CubicBezier](https://developer.android.com/reference/androidx/ink/brush/behavior/EasingFunction.CubicBezier), [EasingFunction.Linear](https://developer.android.com/reference/androidx/ink/brush/behavior/EasingFunction.Linear), [EasingFunction.Predefined](https://developer.android.com/reference/androidx/ink/brush/behavior/EasingFunction.Predefined), [EasingFunction.Steps](https://developer.android.com/reference/androidx/ink/brush/behavior/EasingFunction.Steps)

|---|---|
| `https://developer.android.com/reference/androidx/ink/brush/behavior/EasingFunction.CubicBezier` | Parameters for a custom cubic Bezier easing function. |
| `https://developer.android.com/reference/androidx/ink/brush/behavior/EasingFunction.Linear` | Parameters for a custom piecewise-linear easing function. |
| `https://developer.android.com/reference/androidx/ink/brush/behavior/EasingFunction.Predefined` | Predefined easing functions. |
| `https://developer.android.com/reference/androidx/ink/brush/behavior/EasingFunction.Steps` | Parameters for a custom step easing function. |

*** ** * ** ***

An `EasingFunction` defines a curve between input x and output y "progress values" similar to the CSS easing function: https://www.w3.org/TR/css-easing-1/#easing-functions

An easing function always passes through the (x, y) points (0, 0) and (1, 1). It typically acts to map x values in the 0, 1 interval to y values in 0, 1 by either one of the predefined or one of the parameterized curve types below. Depending on the type of curve, input and output values outside 0, 1 are possible.

## Summary

| ### Nested types |
|---|
| `public final class https://developer.android.com/reference/androidx/ink/brush/behavior/EasingFunction.CubicBezier extends https://developer.android.com/reference/androidx/ink/brush/behavior/EasingFunction` Parameters for a custom cubic Bezier easing function. |
| `public final class https://developer.android.com/reference/androidx/ink/brush/behavior/EasingFunction.Linear extends https://developer.android.com/reference/androidx/ink/brush/behavior/EasingFunction` Parameters for a custom piecewise-linear easing function. |
| `public final class https://developer.android.com/reference/androidx/ink/brush/behavior/EasingFunction.Predefined extends https://developer.android.com/reference/androidx/ink/brush/behavior/EasingFunction` Predefined easing functions. |
| `public final class https://developer.android.com/reference/androidx/ink/brush/behavior/EasingFunction.StepPosition` Setting to determine the desired output value of the first and last step of \[0, 1) for `https://developer.android.com/reference/androidx/ink/brush/behavior/EasingFunction.Steps`. |
| `public final class https://developer.android.com/reference/androidx/ink/brush/behavior/EasingFunction.Steps extends https://developer.android.com/reference/androidx/ink/brush/behavior/EasingFunction` Parameters for a custom step easing function. |

| ### Public methods |
|---|---|
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/ink/brush/Version` | `https://developer.android.com/reference/androidx/ink/brush/behavior/EasingFunction#calculateMinimumRequiredVersion()()` Returns the minimum required `https://developer.android.com/reference/androidx/ink/brush/Version` for this `https://developer.android.com/reference/androidx/ink/brush/behavior/EasingFunction`. |

## Public methods

### calculateMinimumRequiredVersion

Added in [1.1.0-alpha11](https://developer.android.com/jetpack/androidx/releases/ink#1.1.0-alpha11)

```
public final @NonNull Version calculateMinimumRequiredVersion()
```

Returns the minimum required `https://developer.android.com/reference/androidx/ink/brush/Version` for this `https://developer.android.com/reference/androidx/ink/brush/behavior/EasingFunction`.

By default, decoding a `https://developer.android.com/reference/androidx/ink/brush/BrushFamily` containing an `https://developer.android.com/reference/androidx/ink/brush/behavior/EasingFunction` with a minimum required version higher than `https://developer.android.com/reference/androidx/ink/brush/Version#MAX_SUPPORTED()` will fail.