VectorizedFloatAnimationSpec

A convenient implementation of VectorizedFloatAnimationSpec that turns a FloatAnimationSpec into a multi-dimensional VectorizedFloatAnimationSpec, by using the same FloatAnimationSpec on each dimension of the AnimationVector that is being animated.

Constructors

Link copied to clipboard
constructor(anim: FloatAnimationSpec)

Creates a VectorizedAnimationSpec from a FloatAnimationSpec. The given FloatAnimationSpec will be used to animate every dimension of the AnimationVector.

Properties

Link copied to clipboard
open override val isInfinite: Boolean

Whether or not the 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.

Functions

Link copied to clipboard
@RestrictTo(value = [RestrictTo.Scope.LIBRARY])
fun <V : AnimationVector> VectorizedAnimationSpec<V>.createAnimation(initialValue: V, targetValue: V, initialVelocity: V): TargetBasedAnimation<V, V>

Creates a TargetBasedAnimation from a given com.jakewharton.mosaic.animation.VectorizedAnimationSpec of AnimationVector type. This convenient method is intended for when the value being animated (i.e. start value, end value, etc) is of AnimationVector type.

Link copied to clipboard
open override fun getDurationNanos(initialValue: V, targetValue: V, initialVelocity: V): Long

Calculates the duration of an animation. For duration-based animations, this will return the pre-defined duration. For physics-based animations, the duration will be estimated based on the physics configuration (such as spring stiffness, damping ratio, visibility threshold) as well as the initialValue, targetValue values, and initialVelocity.

Link copied to clipboard
open override fun getEndVelocity(initialValue: V, targetValue: V, initialVelocity: V): V

Calculates the end velocity of the animation with the provided start/end values, and start velocity. For duration-based animations, end velocity will be the velocity of the animation at the duration time. This is also the default assumption. However, for physics-based animations, end velocity is an AnimationVector of 0s.

Link copied to clipboard
open override fun getValueFromNanos(playTimeNanos: Long, initialValue: V, targetValue: V, initialVelocity: V): V

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

Link copied to clipboard
open override fun getVelocityFromNanos(playTimeNanos: Long, initialValue: V, targetValue: V, initialVelocity: V): V

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