PathInterpolator

class PathInterpolator : Interpolator


An interpolator that can traverse a Path that extends from Point(0, 0) to (1, 1). The x coordinate along the Path is the input value and the output is the y coordinate of the line at that point. This means that the Path must conform to a function y = f(x).

The Path must not have gaps in the x direction and must not loop back on itself such that there can be two points sharing the same x coordinate. It is alright to have a disjoint line in the vertical direction:

    Path path = new Path();
    path.lineTo(0.25f, 0.25f);
    path.moveTo(0.25f, 0.5f);
    path.lineTo(1f, 1f);

Summary

Public constructors

Create an interpolator for an arbitrary Path.

PathInterpolator(controlX: Float, controlY: Float)

Create an interpolator for a quadratic Bezier curve.

PathInterpolator(
    context: Context,
    attrs: AttributeSet?,
    parser: XmlPullParser
)

Create an interpolator from XML.

PathInterpolator(
    controlX1: Float,
    controlY1: Float,
    controlX2: Float,
    controlY2: Float
)

Create an interpolator for a cubic Bezier curve.

PathInterpolator(
    res: Resources,
    theme: Resources.Theme?,
    attrs: AttributeSet?,
    parser: XmlPullParser
)

Create an interpolator from XML.

Public functions

Float
getInterpolation(input: @FloatRange(from = 0, to = 1) Float)

Using the line in the Path in this interpolator that can be described as y = f(x), finds the y coordinate of the line given t as the x coordinate.

Public constructors

PathInterpolator

PathInterpolator(path: Path)

Create an interpolator for an arbitrary Path. The Path must begin at (0, 0) and end at (1, 1).

Parameters
path: Path

The Path to use to make the line representing the interpolator.

PathInterpolator

PathInterpolator(controlX: Float, controlY: Float)

Create an interpolator for a quadratic Bezier curve. The end points (0, 0) and (1, 1) are assumed.

Parameters
controlX: Float

The x coordinate of the quadratic Bezier control point.

controlY: Float

The y coordinate of the quadratic Bezier control point.

PathInterpolator

PathInterpolator(
    context: Context,
    attrs: AttributeSet?,
    parser: XmlPullParser
)

Create an interpolator from XML.

Parameters
context: Context

The context.

attrs: AttributeSet?

The AttributeSet for pathInterpolator.

parser: XmlPullParser

The XmlPullParser that was used to create the AttributeSet with asAttributeSet.

PathInterpolator

PathInterpolator(
    controlX1: Float,
    controlY1: Float,
    controlX2: Float,
    controlY2: Float
)

Create an interpolator for a cubic Bezier curve. The end points (0, 0) and (1, 1) are assumed.

Parameters
controlX1: Float

The x coordinate of the first control point of the cubic Bezier.

controlY1: Float

The y coordinate of the first control point of the cubic Bezier.

controlX2: Float

The x coordinate of the second control point of the cubic Bezier.

controlY2: Float

The y coordinate of the second control point of the cubic Bezier.

PathInterpolator

PathInterpolator(
    res: Resources,
    theme: Resources.Theme?,
    attrs: AttributeSet?,
    parser: XmlPullParser
)

Create an interpolator from XML.

Parameters
res: Resources

The resources.

theme: Resources.Theme?

The theme.

attrs: AttributeSet?

The AttributeSet for pathInterpolator.

parser: XmlPullParser

The XmlPullParser that was used to create the AttributeSet with asAttributeSet.

Public functions

getInterpolation

fun getInterpolation(input: @FloatRange(from = 0, to = 1) Float): Float

Using the line in the Path in this interpolator that can be described as y = f(x), finds the y coordinate of the line given t as the x coordinate. Values less than 0 will always return 0 and values greater than 1 will always return 1.

Parameters
input: @FloatRange(from = 0, to = 1) Float

Treated as the x coordinate along the line.

Returns
Float

The y coordinate of the Path along the line where x = t.

See also
getInterpolation