美文网首页工作生活
Interpolator插值器心得笔记

Interpolator插值器心得笔记

作者: nullpt | 来源:发表于2019-07-03 23:13 被阅读0次

    Interpolator(介绍吗)

    额,网上有那么多讲解,就不写介绍了吧。。。
    就在今天写动画的时候,突然看到以前使用了插值器,想了一下貌似没有仔细学习过,于是就好好学了一下。这里做一个笔记~~~。

    先看一下代码

    public class MyInterpolator implements Interpolator {
        @Override
        public float getInterpolation(float input) {
            return input;
        }
    }
    

    这是自定义的一个插值器,效果和LinearInterpolator一样,实现动画匀速变化效果。这里input的变化范围是[0,1],返回值的要求是0对应0、1对应1,之间数随意。我一直觉得将其映射成一个y关于x的函数可能更好理解一点,那么这个函数的导数变化就是view动画的速率变化了。
    栗子:
    设计一个简单效果,view移动先变慢到停止然后变快。我们按照y关于x的函数来理解,是不是x匀速从0到1变换,y的值从变化快渐渐到不变,然后又开始一点点变化快。也就是说函数的导数从大到0然后又变大。
    这个过程我们可以靠到一个函数上,那就是y=x^3;

    y=x^3

    然后,我们只需要将[0,1]这个区间的y值起点和终点靠到0和1上就好了。进行函数的简单变换

    y=(x-0.5)^3*4+0.5
    
    public class MyInterpolator implements Interpolator {
        @Override
        public float getInterpolation(float input) {
            return (float) (Math.pow(input - 0.5, 3) * 4 + 0.5);
        }
    }
    

    这样,一个先变慢到停然后变快的插值器就实现了哈~~~

    相关文章

      网友评论

        本文标题:Interpolator插值器心得笔记

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