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

Migrate your Gradle configuration files to Gradle version catalogs.

Updated Feb 29, 2024

This page describes the planned evolution of the Android Gradle Plugin’s DSL and API.

Updated Sep 20, 2023

Discover the latest app development tools, platform updates, training, and documentation for developers across every Android device.

Updated Dec 2, 2024