Google is committed to advancing racial equity for Black communities. See how.

AnimationSpec

interface AnimationSpec<T>
androidx.compose.animation.core.AnimationSpec

AnimationSpec stores the specification of an animation, including 1) the data type to be animated, and 2) the animation configuration (i.e. VectorizedAnimationSpec) that will be used to once the data (of type T) has been converted to AnimationVector.

Any type T can be animated by the system as long as a TwoWayConverter is supplied to convert the data type T from and to an AnimationVector. There are a number of converters available out of the box. For example, to animate androidx.compose.ui.unit.IntOffset the system uses androidx.compose.animation.IntOffset.VectorConverter to convert the object to AnimationVector2D, so that both x and y dimensions are animated independently with separate velocity tracking. This enables multidimensional objects to be animated in a true multi-dimensional way. It is particularly useful for smoothly handling animation interruptions (such as when the target changes during the animation).

Summary

Public methods
abstract VectorizedAnimationSpec<V>
vectorize(converter: TwoWayConverter<T, V>)

Creates a VectorizedAnimationSpec with the given TwoWayConverter.

Public methods

vectorize

abstract fun <V : AnimationVector> vectorize(converter: TwoWayConverter<T, V>): VectorizedAnimationSpec<V>

Creates a VectorizedAnimationSpec with the given TwoWayConverter.

The underlying animation system operates on AnimationVectors. T will be converted to AnimationVector to animate. VectorizedAnimationSpec describes how the converted AnimationVector should be animated. E.g. The animation could simply interpolate between the start and end values (i.e.TweenSpec), or apply spring physics to produce the motion (i.e. SpringSpec), etc)

Parameters
converter: TwoWayConverter<T, V> converts the type T from and to AnimationVector type