KeyframesWithSplineSpec

Class

Common
public class KeyframesWithSplineSpec<T>(public val config: KeyframesWithSplineSpecConfig<T>) :
    DurationBasedAnimationSpec<T>

KeyframesWithSplineSpec creates a keyframe based DurationBasedAnimationSpec using the Monotone cubic Hermite spline to interpolate between the values in config.

KeyframesWithSplineSpec may be used to animate any n-dimensional values, but you'll likely use it most to animate positional 2D values such as Offset. For example:

You may also provide a periodicBias value (between 0f and 1f) to make a periodic spline. Periodic splines adjust the initial and final velocity to be the same. This is useful to create smooth repeatable animations. Such as an infinite pulsating animation:

The periodicBias value (from 0.0 to 1.0) indicates how much of the original starting and final velocity are modified to achieve periodicity:

  • 0f: Modifies only the starting velocity to match the final velocity
  • 1f: Modifies only the final velocity to match the starting velocity
  • 0.5f: Modifies both velocities equally, picking the average between the two

Secondary Constructors

public constructor(
    config: KeyframesWithSplineSpecConfig<T>,
    @FloatRange(0.0, 1.0) periodicBias: Float,
) : this(config) {
    this.periodicBias = periodicBias
}

Constructor that returns a periodic spline implementation.

Parameters

configKeyframe configuration of the spline, should contain the set of values, timestamps and easing curves to animate through.
periodicBiasA value from 0f to 1f, indicating how much the starting or ending velocities are modified respectively to achieve periodicity.