# VectorizedFiniteAnimationSpec

Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/VectorizedAnimationSpec.kt+class:androidx.compose.animation.core.VectorizedFiniteAnimationSpec) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.0.0) Common/All
- Cmn

  ```
  interface VectorizedFiniteAnimationSpec<V : AnimationVector> : VectorizedAnimationSpec<V>
  ```
Known direct subclasses [VectorizedDurationBasedAnimationSpec](https://developer.android.com/reference/kotlin/androidx/compose/animation/core/VectorizedDurationBasedAnimationSpec), [VectorizedFloatAnimationSpec](https://developer.android.com/reference/kotlin/androidx/compose/animation/core/VectorizedFloatAnimationSpec), [VectorizedRepeatableSpec](https://developer.android.com/reference/kotlin/androidx/compose/animation/core/VectorizedRepeatableSpec), [VectorizedSpringSpec](https://developer.android.com/reference/kotlin/androidx/compose/animation/core/VectorizedSpringSpec)

|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/VectorizedDurationBasedAnimationSpec` | Base class for `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/VectorizedAnimationSpec`s that are based on a fixed `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/VectorizedDurationBasedAnimationSpec#durationMillis()`. |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/VectorizedFloatAnimationSpec` | A convenient implementation of `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/VectorizedFloatAnimationSpec` that turns a `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/FloatAnimationSpec` into a multi-dimensional `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/VectorizedFloatAnimationSpec`, by using the same `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/FloatAnimationSpec` on each dimension of the `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector` that is being animated. |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/VectorizedRepeatableSpec` | This animation takes another `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/VectorizedDurationBasedAnimationSpec` and plays it `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/VectorizedRepeatableSpec#(kotlin.Int,androidx.compose.animation.core.VectorizedDurationBasedAnimationSpec,androidx.compose.animation.core.RepeatMode,androidx.compose.animation.core.StartOffset)` times. |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/VectorizedSpringSpec` | `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/VectorizedSpringSpec` uses spring animations to animate (each dimension of) `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector`s. |

Known indirect subclasses [VectorizedKeyframesSpec](https://developer.android.com/reference/kotlin/androidx/compose/animation/core/VectorizedKeyframesSpec), [VectorizedSnapSpec](https://developer.android.com/reference/kotlin/androidx/compose/animation/core/VectorizedSnapSpec), [VectorizedTweenSpec](https://developer.android.com/reference/kotlin/androidx/compose/animation/core/VectorizedTweenSpec)

|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/VectorizedKeyframesSpec` | `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/VectorizedKeyframesSpec` class manages the animation based on the values defined at different timestamps in the duration of the animation (i.e. different keyframes). |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/VectorizedSnapSpec` | `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/VectorizedSnapSpec` immediately snaps the animating value to the end value. |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/VectorizedTweenSpec` | `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/VectorizedTweenSpec` animates a `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector` value by interpolating the start and end value, in the given `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/VectorizedTweenSpec#(kotlin.Int,kotlin.Int,androidx.compose.animation.core.Easing)` using the given `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/VectorizedTweenSpec#(kotlin.Int,kotlin.Int,androidx.compose.animation.core.Easing)` curve. |

*** ** * ** ***

All the finite `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/VectorizedAnimationSpec`s implement this interface, including: `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/VectorizedKeyframesSpec`, `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/VectorizedTweenSpec`, `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/VectorizedRepeatableSpec`, `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/VectorizedSnapSpec`, `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/VectorizedSpringSpec`, etc. The `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/VectorizedAnimationSpec` that does **not** implement this is: `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/InfiniteRepeatableSpec`.

## Summary

| ### Public properties |
|---|---|---|
| `open https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/VectorizedFiniteAnimationSpec#isInfinite()` Whether or not the `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/VectorizedAnimationSpec` specifies an infinite animation. | Cmn |

### Inherited functions

From [androidx.compose.animation.core.VectorizedAnimationSpec](https://developer.android.com/reference/kotlin/androidx/compose/animation/core/VectorizedAnimationSpec) `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/VectorizedAnimationSpec#getDurationNanos(androidx.compose.animation.core.AnimationVector,androidx.compose.animation.core.AnimationVector,androidx.compose.animation.core.AnimationVector)(initialValue: V, targetValue: V, initialVelocity: V)`

Calculates the duration of an animation.
Cmn `open V` `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/VectorizedAnimationSpec#getEndVelocity(androidx.compose.animation.core.AnimationVector,androidx.compose.animation.core.AnimationVector,androidx.compose.animation.core.AnimationVector)(initialValue: V, targetValue: V, initialVelocity: V)`

Calculates the end velocity of the animation with the provided start/end values, and start velocity.
Cmn `V` `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/VectorizedAnimationSpec#getValueFromNanos(kotlin.Long,androidx.compose.animation.core.AnimationVector,androidx.compose.animation.core.AnimationVector,androidx.compose.animation.core.AnimationVector)(
playTimeNanos: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html,
initialValue: V,
targetValue: V,
initialVelocity: V
)`

Calculates the value of the animation at given the playtime, with the provided start/end values, and start velocity.
Cmn `V` `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/VectorizedAnimationSpec#getVelocityFromNanos(kotlin.Long,androidx.compose.animation.core.AnimationVector,androidx.compose.animation.core.AnimationVector,androidx.compose.animation.core.AnimationVector)(
playTimeNanos: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html,
initialValue: V,
targetValue: V,
initialVelocity: V
)`

Calculates the velocity of the animation at given the playtime, with the provided start/end values, and start velocity.
Cmn

## Public properties

### isInfinite

Cmn

```
open val isInfinite: Boolean
```

Whether or not the `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/VectorizedAnimationSpec` specifies an infinite animation. That is, one that will not finish by itself, one that needs an external action to stop. For examples, an indeterminate progress bar, which will only stop when it is removed from the composition.