美文网首页
[Android动画]插值器的理解

[Android动画]插值器的理解

作者: qiHuang112 | 来源:发表于2020-04-13 16:06 被阅读0次

    先说结论

    插值器核心函数为getInterpolation方法,此方法可转化为一个函数图像,斜率表示方向,大小表示速度,速度对时间的积分表示位移

    证明

    1.LinearInterpolator

    public float getInterpolation(float input) {
        return input;
    }
    

    画出图像:

    实际效果

    LinearInterpolator.gif

    2.AccelerateDecelerateInterpolator

    public float getInterpolation(float input) {
        return (float)(Math.cos((input + 1) * Math.PI) / 2.0f) + 0.5f;
    }
    

    画出图像:

    实际效果

    AccelerateDecelerateInterpolator.gif

    3.CycleInterpolator

    public float getInterpolation(float input) {
        return (float)(Math.sin(2 * mCycles * Math.PI * input));
    }
    

    画出图像:

    实际效果

    CycleInterpolator.gif

    4.OvershootInterpolator

    public float getInterpolation(float t) {
        // _o(t) = t * t * ((tension + 1) * t + tension)
        // o(t) = _o(t - 1) + 1
        t -= 1.0f;
        return t * t * ((mTension + 1) * t + mTension) + 1.0f;
    }
    

    画出图像:

    实际效果

    OvershootInterpolator.gif

    总结

    相信图像画出来之后,聪明的你已经看出了其中的规律,接下来就可以按照自己的想法设计插值器了,快去实现自己的动画效果吧-!

    相关文章

      网友评论

          本文标题:[Android动画]插值器的理解

          本文链接:https://www.haomeiwen.com/subject/pkxnmhtx.html