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);
    }
}

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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 【Android 动画】 动画分类补间动画(Tween动画)帧动画(Frame 动画)属性动画(Property ...
    Rtia阅读 6,435评论 1 38
  • thiele插值算法 1点插值算法 function [C,c]=thiele(X,Y,Z)%X为插值点横坐标,Y...
    00crazy00阅读 2,193评论 0 4
  • 一: 传统 View 动画(Tween/Frame) 1.1 Tween 动画 主要有 4 中:缩放、平移、渐变、...
    dfg_fly阅读 855评论 1 2
  • 1 背景 不能只分析源码呀,分析的同时也要整理归纳基础知识,刚好有人微博私信让全面说说Android的动画,所以今...
    未聞椛洺阅读 2,861评论 0 10
  • 转载一篇高质量博文,原地址请戳这里转载下来方便今后查看。1 背景不能只分析源码呀,分析的同时也要整理归纳基础知识,...
    Elder阅读 2,015评论 0 24

友情链接更多精彩内容