public interface

TypeEvaluator<T>

 androidx.core.animation.TypeEvaluator<T>

Subclasses:

IntEvaluator, PointFEvaluator, FloatEvaluator, IntArrayEvaluator, FloatArrayEvaluator, ArgbEvaluator, RectEvaluator

Gradle dependencies

compile group: 'androidx.core', name: 'core-animation', version: '1.0.0'

  • groupId: androidx.core
  • artifactId: core-animation
  • version: 1.0.0

Artifact androidx.core:core-animation:1.0.0 it located at Google repository (https://maven.google.com/)

Overview

Interface for use with the ValueAnimator.setEvaluator(TypeEvaluator) function. Evaluators allow developers to create animations on arbitrary property types, by allowing them to supply custom evaluators for types that are not automatically understood and used by the animation system.

Summary

Methods
public java.lang.Objectevaluate(float fraction, java.lang.Object startValue, java.lang.Object endValue)

This function returns the result of linearly interpolating the start and end values, with fraction representing the proportion between the start and end values.

Methods

public java.lang.Object evaluate(float fraction, java.lang.Object startValue, java.lang.Object endValue)

This function returns the result of linearly interpolating the start and end values, with fraction representing the proportion between the start and end values. The calculation is a simple parametric calculation: result = x0 + t * (x1 - x0), where x0 is startValue, x1 is endValue, and t is fraction.

Parameters:

fraction: The fraction from the starting to the ending values
startValue: The start value.
endValue: The end value.

Returns:

A linear interpolation between the start and end values, given the fraction parameter.

Source

/*
 * Copyright 2018 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package androidx.core.animation;

import androidx.annotation.NonNull;

/**
 * Interface for use with the {@link ValueAnimator#setEvaluator(TypeEvaluator)} function. Evaluators
 * allow developers to create animations on arbitrary property types, by allowing them to supply
 * custom evaluators for types that are not automatically understood and used by the animation
 * system.
 *
 * @param <T> the type of value to be evaluated
 * @see ValueAnimator#setEvaluator(TypeEvaluator)
 */
public interface TypeEvaluator<T> {

    /**
     * This function returns the result of linearly interpolating the start and end values, with
     * <code>fraction</code> representing the proportion between the start and end values. The
     * calculation is a simple parametric calculation: <code>result = x0 + t * (x1 - x0)</code>,
     * where <code>x0</code> is <code>startValue</code>, <code>x1</code> is <code>endValue</code>,
     * and <code>t</code> is <code>fraction</code>.
     *
     * @param fraction   The fraction from the starting to the ending values
     * @param startValue The start value.
     * @param endValue   The end value.
     * @return A linear interpolation between the start and end values, given the
     *         <code>fraction</code> parameter.
     */
    @NonNull
    T evaluate(float fraction, @NonNull T startValue, @NonNull T endValue);

}