# CycleInterpolator

# 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)

*** ** * ** ***

Kotlin\|[Java](https://developer.android.com/reference/androidx/core/animation/CycleInterpolator "View this page in Java")

<br />

```
class CycleInterpolator : Interpolator
```

<br />

*** ** * ** ***

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

## Summary

|                                                                                                                                                                                                                                                      ### Public constructors                                                                                                                                                                                                                                                       |
|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [CycleInterpolator](https://developer.android.com/reference/kotlin/androidx/core/animation/CycleInterpolator#CycleInterpolator(float))`(cycles: `[Float](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html)`)` Creates a new instance of[CycleInterpolator](https://developer.android.com/reference/kotlin/androidx/core/animation/CycleInterpolator).                                                                                                                                                        |
| [CycleInterpolator](https://developer.android.com/reference/kotlin/androidx/core/animation/CycleInterpolator#CycleInterpolator(android.content.Context,android.util.AttributeSet))`(context: `[Context](https://developer.android.com/reference/android/content/Context.html)`, attrs: `[AttributeSet](https://developer.android.com/reference/android/util/AttributeSet.html)`?)` Creates a new instance of[CycleInterpolator](https://developer.android.com/reference/kotlin/androidx/core/animation/CycleInterpolator)from XML. |

|                                                                                        ### Public functions                                                                                        |
|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `@`[FloatRange](https://developer.android.com/reference/kotlin/androidx/annotation/FloatRange)`(from = 0, to = 1) `[Float](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html) | [getInterpolation](https://developer.android.com/reference/kotlin/androidx/core/animation/CycleInterpolator#getInterpolation(float))`(input: @`[FloatRange](https://developer.android.com/reference/kotlin/androidx/annotation/FloatRange)`(from = 0, to = 1) `[Float](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html)`)` Maps a value representing the elapsed fraction of an animation to a value that represents the interpolated fraction. |

## Public constructors

### CycleInterpolator

```
CycleInterpolator(cycles: Float)
```

Creates a new instance of[CycleInterpolator](https://developer.android.com/reference/kotlin/androidx/core/animation/CycleInterpolator).  

|                                        Parameters                                         |
|-------------------------------------------------------------------------------------------|-----------------------|
| `cycles: `[Float](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html) | The cycles to repeat. |

### CycleInterpolator

```
CycleInterpolator(context: Context, attrs: AttributeSet?)
```

Creates a new instance of[CycleInterpolator](https://developer.android.com/reference/kotlin/androidx/core/animation/CycleInterpolator)from XML.  

|                                             Parameters                                             |
|----------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------|
| `context: `[Context](https://developer.android.com/reference/android/content/Context.html)         | The context.                                                                                       |
| `attrs: `[AttributeSet](https://developer.android.com/reference/android/util/AttributeSet.html)`?` | The[AttributeSet](https://developer.android.com/reference/android/util/AttributeSet.html)from XML. |

## Public functions

### getInterpolation

```
fun getInterpolation(input: @FloatRange(from = 0, to = 1) Float): @FloatRange(from = 0, to = 1) Float
```

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                                                                                                 |
|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------|
| `input: @`[FloatRange](https://developer.android.com/reference/kotlin/androidx/annotation/FloatRange)`(from = 0, to = 1) `[Float](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html) | 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                                                                                               |
|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `@`[FloatRange](https://developer.android.com/reference/kotlin/androidx/annotation/FloatRange)`(from = 0, to = 1) `[Float](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html) | 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. |