Android动画之Interpolator插入器
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插入器相关推荐
- Android动画中Interpolator 详解和演示
遇到一个项目需求,想让动画变得更活泼一点,于是想到了动画属性中的Interpolator,写了基本例子测试一下Android提供给我们现成的加速器的效果: 效果 代码中方法 xml中属性 越来越快 A ...
- Android动画之Interpolator(插值器)
原文: https://blog.csdn.net/pzm1993/article/details/77926373 使用参考:https://github.com/MasayukiSuda/Easi ...
- Android动画中Interpolator 加速器的使用
遇到一个项目需求,想让动画变得更活泼一点,于是想到了动画属性中的Interpolator,写了基本例子测试一下android提供给我们现成的加速器的效果: 效果 代码中方法 xml中属性 越来越快 A ...
- Android Animation时间插入器Interpolator
http://blog.csdn.net/lixiang0522/article/details/7893239 属性动画系统是非常强健的框架,允许你移动几乎任何东西.你可以定义一个动画去改变任何对象 ...
- Android动画学习记录二(属性动画、估值器和插值器)
Android动画学习记录二(属性动画.估值期和插值器) Android动画学习记录二(属性动画.估值期和插值器) Android动画学习记录二(属性动画.估值期和插值器) 一.补间动画缺陷 二.属性 ...
- 基于Android自带插入器的图形波动效果 --转载自李硕老师博客160303
原文地址:http://blog.csdn.net/u012215170/article/details/50598747 对于Android的各种动画我们并不陌生,但是可能很多同学不知道Interp ...
- Android动画-Interpolator(插值器)大全
本章内容 花了点时间,把所有动画的插值器都用了一遍,写了个Demo分享下,看效果之前先看下Android动画中插值器的类型: AccelerateDecelerateInterpolator @and ...
- [译]Android 动画的灵魂—— Interpolator
本文讲的是[译]Android 动画的灵魂-- Interpolator, 用定制的非线性定时曲线改善你的动画 在现实世界中的运动是非线性的.(当你穿过街道时,你只要略微将你盯着手机的眼睛瞄一眼街道就 ...
- android自定义动画插值器(Interpolator)
前言 之前已经讲过动画相关的内容,没有接触过的读者可以看下笔者之前对android动画使用的整理. Android动画总结 (valueAnimator.objectAnimator.Animator ...
- Android动画效果translate、scale、alpha、rotate详解
动画类型 Android的animation由四种类型组成 XML中 alpha 渐变透明度动画效果 scale 渐变尺寸伸缩动画效果 translate 画面转换位置移动动画效果 rotate 画面 ...
最新文章
- 通过案例练习掌握SSH 的整合
- 9个常用iptables配置实例
- Java: 数据类型
- 熟悉又陌生 彪悍徐茂栋的双面人生
- 元素属性的添加删除(原生js)
- vue密码强度提示条
- ZooKeeper学习专题之四:示例 实时更新server列表
- 【Python】用pip安装python库下载超时的解决办法
- DVR,DVS,NVR,NVS 的区别
- 敏捷教练如何辅导发布计划的制定之开展行动
- [Apache Kafka 3.2源码解析系列]-2-Kaka高性能高可用设计原理
- Android新浪微博分页加载,Android仿新浪微博分页管理界面(3)
- 击败26个硕士,本科生“歪门邪道”月薪过万
- 暨南大学计算机专业考研录取目录,21考研必备 暨南大学2020计算机类研究生招生情况汇总...
- 京东终身技术顾问李大学:互联网+大数据实战演练
- DayThirteen 笔记
- 挡土墙lisp程序_挡土墙设计程序说明
- 如何从短信链接打开跳转到微信App内
- Pyqt5+python2.7 美观的登陆界面制作(二)
- 《地球毁灭日》4毁灭与希望
热门文章
- 矩阵乘法计算量估算/华为机试(C/C++)
- oracle中imp命令详解,Oracle中imp命令详解
- 26. 简述队列和栈的异同
- 什么是TOC (http://hi.baidu.com/qq740566/blog/index/18)
- 微信小程序中如何有效地改变app.js中的数据,并在其他页面进行动态响应
- PG in not in系列方案比较
- 解决Word中出现的多级列表编号不显示的问题
- 连接网络计算机提示没有访问权限,无网络访问权限,教您无网络访问权限怎么办...
- SSL安全证书:免费的SSL证书申请渠道有哪些?
- 阿里云SSL证书免费申请和部署方法((DigiCert 免费版 SSL-图文教程)