# CycleInterpolator

Artifact: [androidx.core:core-animation](https://developer.android.com/jetpack/androidx/releases/core) [View Source](https://cs.android.com/search?q=file:androidx/core/animation/CycleInterpolator.java+class:androidx.core.animation.CycleInterpolator) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/core#1.0.0)

*** ** * ** ***


```
public class CycleInterpolator implements Interpolator
```

<br />

*** ** * ** ***

Repeats the animation for a specified number of cycles. The rate of change follows a sinusoidal pattern.

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/androidx/core/animation/CycleInterpolator#CycleInterpolator(float)(float cycles)` Creates a new instance of `https://developer.android.com/reference/androidx/core/animation/CycleInterpolator`. |
| `https://developer.android.com/reference/androidx/core/animation/CycleInterpolator#CycleInterpolator(android.content.Context,android.util.AttributeSet)(@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/android/content/Context.html context, @https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/android/util/AttributeSet.html attrs)` Creates a new instance of `https://developer.android.com/reference/androidx/core/animation/CycleInterpolator` from XML. |

| ### Public methods |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/FloatRange(from = 0, to = 1) float` | `https://developer.android.com/reference/androidx/core/animation/CycleInterpolator#getInterpolation(float)(@https://developer.android.com/reference/androidx/annotation/FloatRange(from = 0, to = 1) float input)` Maps a value representing the elapsed fraction of an animation to a value that represents the interpolated fraction. |

## Public constructors

### CycleInterpolator

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/core#1.0.0)

```
public CycleInterpolator(float cycles)
```

Creates a new instance of `https://developer.android.com/reference/androidx/core/animation/CycleInterpolator`.

| Parameters |
|---|---|
| `float cycles` | The cycles to repeat. |

### CycleInterpolator

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/core#1.0.0)

```
public CycleInterpolator(@NonNull Context context, @Nullable AttributeSet attrs)
```

Creates a new instance of `https://developer.android.com/reference/androidx/core/animation/CycleInterpolator` from XML.

| Parameters |
|---|---|
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/android/content/Context.html context` | The context. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/android/util/AttributeSet.html attrs` | The `https://developer.android.com/reference/android/util/AttributeSet.html` from XML. |

## Public methods

### getInterpolation

```
public @FloatRange(from = 0, to = 1) float getInterpolation(@FloatRange(from = 0, to = 1) float input)
```

Maps a value representing the elapsed fraction of an animation to a value that represents the interpolated fraction. This interpolated value is then multiplied by the change in value of an animation to derive the animated value at the current elapsed animation time.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/FloatRange(from = 0, to = 1) float input` | A value between 0 and 1.0 indicating our current point in the animation where 0 represents the start and 1.0 represents the end |

| Returns |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/FloatRange(from = 0, to = 1) float` | The interpolation value. This value can be more than 1.0 for interpolators which overshoot their targets, or less than 0 for interpolators that undershoot their targets. |