AnimationSpec
public interface AnimationSpec<T>
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
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
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).
Functions
public fun <V : AnimationVector> vectorize(
converter: TwoWayConverter<T, V>
): VectorizedAnimationSpec<V>
Creates a VectorizedAnimationSpec
with the given TwoWayConverter
.
The underlying animation system operates on AnimationVector
s. 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 | converts the type T from and to AnimationVector type |