PathInterpolator


public class PathInterpolator implements 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(float controlX, float controlY)

Create an interpolator for a quadratic Bezier curve.

PathInterpolator(
    @NonNull Context context,
    @Nullable AttributeSet attrs,
    @NonNull XmlPullParser parser
)

Create an interpolator from XML.

PathInterpolator(
    float controlX1,
    float controlY1,
    float controlX2,
    float controlY2
)

Create an interpolator for a cubic Bezier curve.

PathInterpolator(
    @NonNull Resources res,
    @Nullable Resources.Theme theme,
    @Nullable AttributeSet attrs,
    @NonNull XmlPullParser parser
)

Create an interpolator from XML.

Public methods

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

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

public PathInterpolator(@NonNull Path path)

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

Parameters
@NonNull Path path

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

PathInterpolator

public PathInterpolator(float controlX, float controlY)

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

Parameters
float controlX

The x coordinate of the quadratic Bezier control point.

float controlY

The y coordinate of the quadratic Bezier control point.

PathInterpolator

public PathInterpolator(
    @NonNull Context context,
    @Nullable AttributeSet attrs,
    @NonNull XmlPullParser parser
)

Create an interpolator from XML.

Parameters
@NonNull Context context

The context.

@Nullable AttributeSet attrs

The AttributeSet for pathInterpolator.

@NonNull XmlPullParser parser

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

PathInterpolator

public PathInterpolator(
    float controlX1,
    float controlY1,
    float controlX2,
    float controlY2
)

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

Parameters
float controlX1

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

float controlY1

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

float controlX2

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

float controlY2

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

PathInterpolator

public PathInterpolator(
    @NonNull Resources res,
    @Nullable Resources.Theme theme,
    @Nullable AttributeSet attrs,
    @NonNull XmlPullParser parser
)

Create an interpolator from XML.

Parameters
@NonNull Resources res

The resources.

@Nullable Resources.Theme theme

The theme.

@Nullable AttributeSet attrs

The AttributeSet for pathInterpolator.

@NonNull XmlPullParser parser

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

Public methods

getInterpolation

public float getInterpolation(@FloatRange(from = 0, to = 1) float input)

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
@FloatRange(from = 0, to = 1) float input

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