Interpolator插值器心得笔记

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插值器心得笔记)