android动画速率Interpolator类的一些认识
来源:互联网 发布:幻灯片软件哪个好 编辑:程序博客网 时间:2024/06/08 18:59
android动画速率Interpolator类的一些认识
从今天开始,有时间写写博客,就算是些基础知识也可以写,加深自己学习的记忆.
Interpolator接口继承TimeInterpolator
public interface Interpolator extends TimeInterpolator {}
没有增加任何方法,而TimeInterpolator只有一个抽象方法
public interface TimeInterpolator { float getInterpolation(float input);}
参数input值是一个由0变到1的值,在动画进行过程中,不断调用这个方法..取返回值决定了动画在各个时间段的值。
实现这个方法,应该保证input=0时返回0,input=1时返回1,因为动画的起始和目标就是从0到1。
例如 LinearInterpolator 参照函数y=x
public class LinearInterpolator implements Interpolator { public LinearInterpolator() { } public LinearInterpolator(Context context, AttributeSet attrs) { } public float getInterpolation(float input) { return input; }}
这么原样返回,不做改变就是匀速的。
而取y=x^2就是先慢后快的。
public float getInterpolation(float input) { return input*input;}
而取y=根号x,先快后慢的
public float getInterpolation(float input) { return Math.sqrt(input);}
在过程中还可以超出1,甚至为负值。例如CycleInterpolator
public float getInterpolation(float input) { return (float)(Math.sin(2 * mCycles * Math.PI * input)); }
公式y=sin(2πRx),在坐标图上表现就是波浪形的正弦曲线,根据R值还可以决定波长/频率,也就是在一定时间内抖动的次数
除了android 已有实现的Interpolator 之外,我们还可以自己实现动画的具体过程.
比如我非要走一段停一段,走五次停五次,共10段
class MyInterpolator implements Interpolator { private final float interval; private float curIput = 0; public MyInterpolator() { interval = 0.1f; } public MyInterpolator(int totalCount) { this.interval = 1f / totalCount; } @Override public float getInterpolation(float input) { int curTime = (int) (input / interval); if (curTime % 2 == 0) { return 2 * input - curIput; } else { return curIput = (curTime + 1) * interval; } } }
运行了下,可以运行.
0 0
- android动画速率Interpolator类的一些认识
- 动画interpolator插补器速率图示
- android 动画的Interpolator插值器
- android 动画的Interpolator插值器
- android动画 之Interpolator类
- 从源码角度理解android动画Interpolator类的使用
- 从源码角度理解android动画Interpolator类的使用
- Android动画中Interpolator 加速器的使用
- Android自定义控件:动画类---插值器Interpolator
- android动画之Interpolator
- android动画控制 Interpolator
- Android 动画 Interpolator插值器
- android动画interpolator插补器
- android Interpolator动画插值器
- android 动画interpolator简介
- android动画:interpolator效果
- Android动画进阶(Interpolator)
- Android 动画中的Interpolator
- 函数式编程很难,这正是你要学习它的原因
- 安卓环境中遇到的问题
- iOS同步后couldn't load project
- 偷师饿了么:怎样用HTTP/2优化iOS APP网络层次架构?
- SQL常用语句----提升
- android动画速率Interpolator类的一些认识
- java 判断日期相差几天
- 从win8.1/10第一次使用的欢迎界面的不同看微软转型
- 缓存算法(转载)
- POJ 2311 (博弈 sg函数)
- 目标检测的图像特征提取之(一)HOG特征
- js彩票效果
- 代码的模板化
- PAT_Basic 1016