Example usage for android.support.v4.view.animation PathInterpolatorCompat create

List of usage examples for android.support.v4.view.animation PathInterpolatorCompat create

Introduction

In this page you can find the example usage for android.support.v4.view.animation PathInterpolatorCompat create.

Prototype

public static Interpolator create(float controlX1, float controlY1, float controlX2, float controlY2) 

Source Link

Document

Create an Interpolator for a cubic Bezier curve.

Usage

From source file:com.taobao.weex.dom.transition.WXTransition.java

/**
 * create interpolcator same with web/* w ww . j  a  v a 2s . c o m*/
 * http://www.w3school.com.cn/cssref/pr_transition-timing-function.asp
 * */
private static Interpolator createTimeInterpolator(String interpolator) {
    if (!TextUtils.isEmpty(interpolator)) {
        switch (interpolator) {
        case EASE_IN:
            return PathInterpolatorCompat.create(0.42f, 0f, 1f, 1f);
        case EASE_OUT:
            return PathInterpolatorCompat.create(0f, 0f, 0.58f, 1f);
        case EASE_IN_OUT:
            return PathInterpolatorCompat.create(0.42f, 0f, 0.58f, 1f);
        case EASE:
            return PathInterpolatorCompat.create(0.25f, 0.1f, 0.25f, 1f);
        case LINEAR:
            return PathInterpolatorCompat.create(0.0f, 0f, 1f, 1f);
        default:
            try {
                //Parse cubic-bezier
                SingleFunctionParser<Float> parser = new SingleFunctionParser<>(interpolator,
                        new SingleFunctionParser.FlatMapper<Float>() {
                            @Override
                            public Float map(String raw) {
                                return Float.parseFloat(raw);
                            }
                        });
                List<Float> params = parser.parse(CUBIC_BEZIER);
                if (params != null && params.size() == 4) {
                    return PathInterpolatorCompat.create(params.get(0), params.get(1), params.get(2),
                            params.get(3));
                }
            } catch (RuntimeException e) {
                if (WXEnvironment.isApkDebugable()) {
                    WXLogUtils.e("WXTransition", e);
                }
            }
        }
    }
    return PathInterpolatorCompat.create(0.25f, 0.1f, 0.25f, 1f);
}