SDK对Interpolator的描述是:An interpolator defines the rate of change of an animation. This allows the basic animation effects (alpha, scale, translate, rotate) to be accelerated, decelerated, repeated, etc。简而言之Interpolator就是一个“变化率”,一个基本动画的“变化率”。
比如:从A到B的一个平移动画,移动,当然后速度的快慢,那么从A到B可以是匀速、匀加速、匀减速、变速完成这段距离。假设距离为S,时间为t,速度为v,都知道S=v*t。
这个Interpolator在这里就是一个速度控制器,控制速度变化。先给一个对Interpolator的大概理解,接下来站在程序员的角度来认识Interpolator。
Interpolator借口只有一个抽象方法getInterpolation(float input),由此SDK中扩展了另外几个常用Interpolator类,分别是:
——AccelerateInterpolator:动画从开始到结束,变化率是一个加速的过程。
——DecelerateInterpolator:动画从开始到结束,变化率是一个减速的过程。
——CycleInterpolator:动画从开始到结束,变化率是循环给定次数的正弦曲线。
——AccelerateDecelerateInterpolator:动画从开始到结束,变化率是先加速后减速的过程。
——LinearInterpolator:动画从开始到结束,变化率是线性变化。
..............
这里给一个简单的实现Interpolator接口的类:
import android.view.animation.Interpolator;
public class MyInterpolator implements Interpolator {
private float mFactor;
private int i;
public MyInterpolator(int i){
this.i = i;
}
@Override
public float getInterpolation(float input) {
switch(i){
case 1:mFactor = input;
break;
case 2:mFactor = input*input*input;
break;
}
return mFactor;
}
}

当初始变量为1的时候,mFactor = input,是一个线性函数,“变化率”是匀速的
当初始变量为2的时候,mFactor = input*input*input,是一个曲线函数,“变化率”呈三次方。
这里需要注意的是,input是一个0.0f~1.0f的浮点类型
从上面看来,自定义一个Interpolator就是用input根据所需构造一个函数出来
比如:这里把初始变量为2的时候,把函数改为:mFactor=3*input。这里给出一个测试出来的效果图
这两个图所做的动画都是往下移动100的距离,时间都为3000ms.并且同时做。那为什么绿色的花移动距离是紫色花移动距离的3倍呢?这里来分析一下。
都是以input为变量的一次线性函数,故两者都是匀速运动,此时后者的速度是前者的3倍,所以移动距离也应该是3被。回过头来看,在设置TranslateAniamtion的时候,明明是移动一样的距离啊!这里可以猜测这时设置的距离就不起效果了,也就是Interpolator改变了之前设置的距离。

Android动画之Interpolator插入器相关推荐

  1. Android动画中Interpolator 详解和演示

    遇到一个项目需求,想让动画变得更活泼一点,于是想到了动画属性中的Interpolator,写了基本例子测试一下Android提供给我们现成的加速器的效果: 效果 代码中方法 xml中属性 越来越快 A ...

  2. Android动画之Interpolator(插值器)

    原文: https://blog.csdn.net/pzm1993/article/details/77926373 使用参考:https://github.com/MasayukiSuda/Easi ...

  3. Android动画中Interpolator 加速器的使用

    遇到一个项目需求,想让动画变得更活泼一点,于是想到了动画属性中的Interpolator,写了基本例子测试一下android提供给我们现成的加速器的效果: 效果 代码中方法 xml中属性 越来越快 A ...

  4. Android Animation时间插入器Interpolator

    http://blog.csdn.net/lixiang0522/article/details/7893239 属性动画系统是非常强健的框架,允许你移动几乎任何东西.你可以定义一个动画去改变任何对象 ...

  5. Android动画学习记录二(属性动画、估值器和插值器)

    Android动画学习记录二(属性动画.估值期和插值器) Android动画学习记录二(属性动画.估值期和插值器) Android动画学习记录二(属性动画.估值期和插值器) 一.补间动画缺陷 二.属性 ...

  6. 基于Android自带插入器的图形波动效果 --转载自李硕老师博客160303

    原文地址:http://blog.csdn.net/u012215170/article/details/50598747 对于Android的各种动画我们并不陌生,但是可能很多同学不知道Interp ...

  7. Android动画-Interpolator(插值器)大全

    本章内容 花了点时间,把所有动画的插值器都用了一遍,写了个Demo分享下,看效果之前先看下Android动画中插值器的类型: AccelerateDecelerateInterpolator @and ...

  8. [译]Android 动画的灵魂—— Interpolator

    本文讲的是[译]Android 动画的灵魂-- Interpolator, 用定制的非线性定时曲线改善你的动画 在现实世界中的运动是非线性的.(当你穿过街道时,你只要略微将你盯着手机的眼睛瞄一眼街道就 ...

  9. android自定义动画插值器(Interpolator)

    前言 之前已经讲过动画相关的内容,没有接触过的读者可以看下笔者之前对android动画使用的整理. Android动画总结 (valueAnimator.objectAnimator.Animator ...

  10. Android动画效果translate、scale、alpha、rotate详解

    动画类型 Android的animation由四种类型组成 XML中 alpha 渐变透明度动画效果 scale 渐变尺寸伸缩动画效果 translate 画面转换位置移动动画效果 rotate 画面 ...

最新文章

  1. 通过案例练习掌握SSH 的整合
  2. 9个常用iptables配置实例
  3. Java: 数据类型
  4. 熟悉又陌生 彪悍徐茂栋的双面人生
  5. 元素属性的添加删除(原生js)
  6. vue密码强度提示条
  7. ZooKeeper学习专题之四:示例 实时更新server列表
  8. 【Python】用pip安装python库下载超时的解决办法
  9. DVR,DVS,NVR,NVS 的区别
  10. 敏捷教练如何辅导发布计划的制定之开展行动
  11. [Apache Kafka 3.2源码解析系列]-2-Kaka高性能高可用设计原理
  12. Android新浪微博分页加载,Android仿新浪微博分页管理界面(3)
  13. 击败26个硕士,本科生“歪门邪道”月薪过万
  14. 暨南大学计算机专业考研录取目录,21考研必备 暨南大学2020计算机类研究生招生情况汇总...
  15. 京东终身技术顾问李大学:互联网+大数据实战演练
  16. DayThirteen 笔记
  17. 挡土墙lisp程序_挡土墙设计程序说明
  18. 如何从短信链接打开跳转到微信App内
  19. Pyqt5+python2.7 美观的登陆界面制作(二)
  20. 《地球毁灭日》4毁灭与希望

热门文章

  1. 矩阵乘法计算量估算/华为机试(C/C++)
  2. oracle中imp命令详解,Oracle中imp命令详解
  3. 26. 简述队列和栈的异同
  4. 什么是TOC (http://hi.baidu.com/qq740566/blog/index/18)
  5. 微信小程序中如何有效地改变app.js中的数据,并在其他页面进行动态响应
  6. PG in not in系列方案比较
  7. 解决Word中出现的多级列表编号不显示的问题
  8. 连接网络计算机提示没有访问权限,无网络访问权限,教您无网络访问权限怎么办...
  9. SSL安全证书:免费的SSL证书申请渠道有哪些?
  10. 阿里云SSL证书免费申请和部署方法((DigiCert 免费版 SSL-图文教程)