Android学习之 AccelerateInterpolator.getInterpolation

来源:互联网 发布:mac如何格式化移动硬盘 编辑:程序博客网 时间:2024/06/16 08:01
今天说一下新发现的一个类的使用:
网上很多都写了Interpolator,你们先了解一下.我主要是简单说怎么用.
Android 动画之Interpolator插入器

    ——AccelerateInterpolator:动画从开始到结束,变化率是一个加速的过程。

    ——DecelerateInterpolator:动画从开始到结束,变化率是一个减速的过程。

    ——CycleInterpolator:动画从开始到结束,变化率是循环给定次数的正弦曲线。

    ——AccelerateDecelerateInterpolator:动画从开始到结束,变化率是先加速后减速的过程。

    ——LinearInterpolator:动画从开始到结束,变化率是线性变化。
AccelerateInterpolator有一个方法:getInterpolation(float input)
源码:
public float getInterpolation(float input) {
61        if (mFactor == 1.0f) {
62            return input * input;
63        else {
64            return (float)Math.pow(input, mDoubleFactor);
65        }
66    }Math.pow 的意思是 input 的 mDoubleFactor 次方,那么如果input不断变大的话, return  的数目就越来越大.而且是加速的.这样就成了加速动画.其他的其次类推.


用处:比如你自己定义一个动画,用线程不断的刷新让一个东西旋转或者移动,你就可以用这个函数把输入的值变化一下再给真正处理动画刷新的函数,这样就可以看到加速和减速等效果.
0 0
原创粉丝点击