# ViewTimeCycle

Artifact: [androidx.constraintlayout:constraintlayout](https://developer.android.com/jetpack/androidx/releases/constraintlayout) [View Source](https://cs.android.com/search?q=file:androidx/constraintlayout/motion/utils/ViewTimeCycle.java+class:androidx.constraintlayout.motion.utils.ViewTimeCycle) Added in [2.2.2](https://developer.android.com/jetpack/androidx/releases/constraintlayout#2.2.2)

*** ** * ** ***

<br />

```
abstract class ViewTimeCycle : TimeCycleSplineSet
```

<br />

|---|---|---|
| [kotlin.Any](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html) |||
| ↳ | [androidx.constraintlayout.core.motion.utils.TimeCycleSplineSet](https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/motion/utils/TimeCycleSplineSet) ||
|   | ↳ | [androidx.constraintlayout.motion.utils.ViewTimeCycle](https://developer.android.com/reference/kotlin/androidx/constraintlayout/motion/utils/ViewTimeCycle) |

Known direct subclasses [ViewTimeCycle.CustomSet](https://developer.android.com/reference/kotlin/androidx/constraintlayout/motion/utils/ViewTimeCycle.CustomSet), [ViewTimeCycle.PathRotate](https://developer.android.com/reference/kotlin/androidx/constraintlayout/motion/utils/ViewTimeCycle.PathRotate)

|---|---|
| `https://developer.android.com/reference/kotlin/androidx/constraintlayout/motion/utils/ViewTimeCycle.CustomSet` |   |
| `https://developer.android.com/reference/kotlin/androidx/constraintlayout/motion/utils/ViewTimeCycle.PathRotate` |   |

*** ** * ** ***

This engine allows manipulation of attributes by wave shapes oscillating in time

## Summary

| ### Nested types |
|---|
| `class https://developer.android.com/reference/kotlin/androidx/constraintlayout/motion/utils/ViewTimeCycle.CustomSet : https://developer.android.com/reference/kotlin/androidx/constraintlayout/motion/utils/ViewTimeCycle` |
| `class https://developer.android.com/reference/kotlin/androidx/constraintlayout/motion/utils/ViewTimeCycle.PathRotate : https://developer.android.com/reference/kotlin/androidx/constraintlayout/motion/utils/ViewTimeCycle` |

| ### Public constructors |
|---|
| `https://developer.android.com/reference/kotlin/androidx/constraintlayout/motion/utils/ViewTimeCycle#ViewTimeCycle()()` |

| ### Public functions |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` | `https://developer.android.com/reference/kotlin/androidx/constraintlayout/motion/utils/ViewTimeCycle#get(float,long,android.view.View,androidx.constraintlayout.core.motion.utils.KeyCache)(pos: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html, time: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html, view: https://developer.android.com/reference/android/view/View.html!, cache: https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/motion/utils/KeyCache!)` get a value from the time cycle |
| `java-static https://developer.android.com/reference/kotlin/androidx/constraintlayout/motion/utils/ViewTimeCycle!` | `https://developer.android.com/reference/kotlin/androidx/constraintlayout/motion/utils/ViewTimeCycle#makeCustomSpline(java.lang.String,android.util.SparseArray<androidx.constraintlayout.widget.ConstraintAttribute>)(str: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!, attrList: https://developer.android.com/reference/android/util/SparseArray.html<https://developer.android.com/reference/kotlin/androidx/constraintlayout/widget/ConstraintAttribute!>!)` make a custom time cycle |
| `java-static https://developer.android.com/reference/kotlin/androidx/constraintlayout/motion/utils/ViewTimeCycle!` | `https://developer.android.com/reference/kotlin/androidx/constraintlayout/motion/utils/ViewTimeCycle#makeSpline(java.lang.String,long)(str: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!, currentTime: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html)` Make a time cycle spline |
| `abstract https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/constraintlayout/motion/utils/ViewTimeCycle#setProperty(android.view.View,float,long,androidx.constraintlayout.core.motion.utils.KeyCache)(view: https://developer.android.com/reference/android/view/View.html!, t: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html, time: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html, cache: https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/motion/utils/KeyCache!)` Set the time cycle parameters |

### Inherited Constants

From [androidx.constraintlayout.core.motion.utils.TimeCycleSplineSet](https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/motion/utils/TimeCycleSplineSet) `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/motion/utils/TimeCycleSplineSet#CURVE_OFFSET() = 2` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/motion/utils/TimeCycleSplineSet#CURVE_PERIOD() = 1` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/motion/utils/TimeCycleSplineSet#CURVE_VALUE() = 0`

### Inherited functions

From [androidx.constraintlayout.core.motion.utils.TimeCycleSplineSet](https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/motion/utils/TimeCycleSplineSet) `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/motion/utils/TimeCycleSplineSet#calcWave(float)(period: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html)` `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/motion/utils/CurveFit!` `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/motion/utils/TimeCycleSplineSet#getCurveFit()()` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/motion/utils/TimeCycleSplineSet#setPoint(int,float,float,int,float)(position: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, value: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html, period: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html, shape: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, offset: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html)` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/motion/utils/TimeCycleSplineSet#setStartTime(long)(currentTime: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html)` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/motion/utils/TimeCycleSplineSet#setType(java.lang.String)(type: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!)` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/motion/utils/TimeCycleSplineSet#setup(int)(curveType: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/motion/utils/TimeCycleSplineSet#toString()()`

### Inherited properties

From [androidx.constraintlayout.core.motion.utils.TimeCycleSplineSet](https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/motion/utils/TimeCycleSplineSet) `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html>!` `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/motion/utils/TimeCycleSplineSet#mCache()` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/motion/utils/TimeCycleSplineSet#mContinue()` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/motion/utils/TimeCycleSplineSet#mCount()` `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/motion/utils/CurveFit!` `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/motion/utils/TimeCycleSplineSet#mCurveFit()` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/motion/utils/TimeCycleSplineSet#mLastCycle()` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/motion/utils/TimeCycleSplineSet#mLastTime()` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html>!` `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/motion/utils/TimeCycleSplineSet#mTimePoints()` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/motion/utils/TimeCycleSplineSet#mType()` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html>!>!` `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/motion/utils/TimeCycleSplineSet#mValues()` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/motion/utils/TimeCycleSplineSet#mWaveShape()` `java-static https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/motion/utils/TimeCycleSplineSet#sVal2PI()`

## Public constructors

### ViewTimeCycle

Added in 2.2.2

```
ViewTimeCycle()
```

## Public functions

### get

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

```
fun get(pos: Float, time: Long, view: View!, cache: KeyCache!): Float
```

get a value from the time cycle

| Parameters |
|---|---|
| `pos: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` |   |
| `time: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` |   |
| `view: https://developer.android.com/reference/android/view/View.html!` |   |
| `cache: https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/motion/utils/KeyCache!` |   |

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` |   |

### makeCustomSpline

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

```
java-static fun makeCustomSpline(str: String!, attrList: SparseArray<ConstraintAttribute!>!): ViewTimeCycle!
```

make a custom time cycle

| Parameters |
|---|---|
| `str: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` |   |
| `attrList: https://developer.android.com/reference/android/util/SparseArray.html<https://developer.android.com/reference/kotlin/androidx/constraintlayout/widget/ConstraintAttribute!>!` |   |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/constraintlayout/motion/utils/ViewTimeCycle!` |   |

### makeSpline

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

```
java-static fun makeSpline(str: String!, currentTime: Long): ViewTimeCycle!
```

Make a time cycle spline

| Parameters |
|---|---|
| `str: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` |   |
| `currentTime: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` |   |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/constraintlayout/motion/utils/ViewTimeCycle!` |   |

### setProperty

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

```
abstract fun setProperty(view: View!, t: Float, time: Long, cache: KeyCache!): Boolean
```

Set the time cycle parameters

| Parameters |
|---|---|
| `view: https://developer.android.com/reference/android/view/View.html!` |   |
| `t: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` |   |
| `time: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` |   |
| `cache: https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/motion/utils/KeyCache!` |   |

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` |   |