一、概述

Interpolator属性是Animation类的一个XML属性,所以alpha、scale、rotate、translate、set都会继承得到这个属性。Interpolator被译为插值器,其实我不大能从字面上理解为什么会这样译,其实他是一个指定动画如何变化的东东,跟PS里的动作有点类似:随便拿来一张图片,应用一个动作,图片就会指定变化。

Interpolator的系统值有下面几个:

意义如下:

  • AccelerateDecelerateInterpolator   在动画开始与介绍的地方速率改变比较慢,在中间的时候加速
  • AccelerateInterpolator                     在动画开始的地方速率改变比较慢,然后开始加速
  • AnticipateInterpolator                      开始的时候向后然后向前甩
  • AnticipateOvershootInterpolator     开始的时候向后然后向前甩一定值后返回最后的值
  • BounceInterpolator                          动画结束的时候弹起
  • CycleInterpolator                             动画循环播放特定的次数,速率改变沿着正弦曲线
  • DecelerateInterpolator                    在动画开始的地方快然后慢
  • LinearInterpolator                            以常量速率改变
  • OvershootInterpolator                      向前甩一定值后再回到原来位置

下面看看各个标签在应用上面的每个插值器后会运动轨迹会怎样。

二、scale标签

下面先看看Scale标签应用插值器后,都会变成什么样。

先看下XML代码:(从控件中心点,从0放大到1.4倍,保持结束时的状态)

[html] view plain copy
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <scale xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:interpolator="@android:anim/accelerate_decelerate_interpolator"
  4. android:fromXScale="0.0"
  5. android:toXScale="1.4"
  6. android:fromYScale="0.0"
  7. android:toYScale="1.4"
  8. android:pivotX="50%"
  9. android:pivotY="50%"
  10. android:duration="700"
  11. android:fillAfter="true"
  12. />

下面一个个看看,每个xml值对应的scale动画是怎样的。

AccelerateInterpolator                                                 DecelerateInterpolator

在动画开始的地方速率改变比较慢,然后开始加速                   在动画开始的地方快然后慢

     

AnticipateInterpolator                                            AnticipateOvershootInterpolator

开始的时候向后然后向前甩                                开始的时候向后然后向前甩一定值后返回最后的值

   

BounceInterpolator                                                      CycleInterpolator

动画结束的时候弹起                             动画循环播放特定的次数,速率改变沿着正弦曲线

   

LinearInterpolator                                  OvershootInterpolator

以常量速率改变                                向前甩一定值后再回到原来位置

   

三、rotate标签

下面先看看rotate标签应用插值器后,都会变成什么样。

先看下XML代码:(从控件中心点,从0放大到1.4倍,保持结束时的状态)

[html] view plain copy
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <rotate xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:interpolator="@android:anim/accelerate_decelerate_interpolator"
  4. android:fromDegrees="0"
  5. android:toDegrees="360"
  6. android:pivotX="50%"
  7. android:pivotY="50%"
  8. android:duration="700"
  9. android:fillAfter="true"
  10. />

AccelerateDecelerateInterpolator   在动画开始与介绍的地方速率改变比较慢,在中间的时候加速

AccelerateInterpolator                                                 DecelerateInterpolator

在动画开始的地方速率改变比较慢,然后开始加速                   在动画开始的地方快然后慢

      

AnticipateInterpolator                                            AnticipateOvershootInterpolator

开始的时候向后然后向前甩                                开始的时候向后然后向前甩一定值后返回最后的值

   

BounceInterpolator                                                      CycleInterpolator

动画结束的时候弹起                             动画循环播放特定的次数,速率改变沿着正弦曲线

   

LinearInterpolator                                  OvershootInterpolator

以常量速率改变                                向前甩一定值后再回到原来位置

   

四、alpha标签

下面先看看alpha标签应用插值器后,都会变成什么样。

将透明度从0变成1.0,使用不同的插值器看看有什么不同(因为只是透明度的变化,所以基本看不出来有什么不同)

[html] view plain copy
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <alpha xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:interpolator="@android:anim/accelerate_decelerate_interpolator"
  4. android:fromAlpha="0.0"
  5. android:toAlpha="1.0"
  6. android:duration="3000"
  7. android:fillAfter="true"
  8. />

AccelerateDecelerateInterpolator   在动画开始与介绍的地方速率改变比较慢,在中间的时候加速

AccelerateInterpolator                                                 DecelerateInterpolator

在动画开始的地方速率改变比较慢,然后开始加速                   在动画开始的地方快然后慢

   

AnticipateInterpolator                                            AnticipateOvershootInterpolator

开始的时候向后然后向前甩                                开始的时候向后然后向前甩一定值后返回最后的值

   

BounceInterpolator                                                      CycleInterpolator

动画结束的时候弹起                             动画循环播放特定的次数,速率改变沿着正弦曲线

   

LinearInterpolator                                   OvershootInterpolator

以常量速率改变                                 向前甩一定值后再回到原来位置

   

五、translate标签

下面先看看translate标签应用插值器后,都会变成什么样。

把控件从(0,0)平移到(-200,-200)的位置,保持结束时状态不变,使用不同插值器。

[html] view plain copy
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <translate xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:interpolator="@android:anim/accelerate_decelerate_interpolator"
  4. android:fromXDelta="0"
  5. android:toXDelta="-200"
  6. android:fromYDelta="0"
  7. android:toYDelta="-200"
  8. android:duration="2000"
  9. android:fillAfter="true"
  10. />

AccelerateDecelerateInterpolator   在动画开始与介绍的地方速率改变比较慢,在中间的时候加速

AccelerateInterpolator                                                 DecelerateInterpolator

在动画开始的地方速率改变比较慢,然后开始加速                   在动画开始的地方快然后慢

   

AnticipateInterpolator                                            AnticipateOvershootInterpolator

开始的时候向后然后向前甩                                开始的时候向后然后向前甩一定值后返回最后的值

   

BounceInterpolator                                                      CycleInterpolator

动画结束的时候弹起                             动画循环播放特定的次数,速率改变沿着正弦曲线

   

LinearInterpolator                                  OvershootInterpolator

以常量速率改变                                向前甩一定值后再回到原来位置

   

这篇文章到这就结束了,因为动画比较多,可能看的会有点晕,下面我会给出上面效果所对应的源码,大家可以运行一下。

Interpolator插值器相关推荐

  1. Android Interpolator(插值器)的介绍和使用

    一.Interpolator 时间插值类,定义动画变换的速度.能够实现alpha/scale/translate/rotate动画的加速.减速和重复等.Interpolator类其实是一个空接口,继承 ...

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

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

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

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

  4. Android 动画的插值器 (Interpolator属性)

    Interpolator(插值器): 属性是设置动画的速度变化的 Interpolator(插值器)的使用方法: 两种方式:在XML 和Java代码中 方法有9中 都是内置的构造方法所以在java代码 ...

  5. Android动画学习笔记(二)——动画插值器Interpolator

    前言:上篇博客我们对补间动画的xml及代码生成做了简单的介绍,今天我们来讲讲动画的一个核心类Interpolator插值器,对于数学好的童鞋来说,学习本节内容就soeasy了!(ps:本人数学很差,都 ...

  6. android 插补器Interpolator的使用

    今天,简单讲讲android如何使用Interpolator. 其实很简单,之前在看别人的博客时,看到别人使用Interpolator,居然不知道只有的Interpolator是什么作用,所以在网上查 ...

  7. Android Animation (安卓动画)概念简介

    Android Animation Android 四种动画分别为逐帧动画和补间动画.属性动画.过渡动画: Frame Animation (逐帧动画) 实现方式:xml 和 Java代码 图片跳转的 ...

  8. Android自定义控件系列

    原文出处:http://blog.csdn.net/harvic880925/article/details/50995268 前言:在我从C++转到Android时,就被Android里炫彩斑斓的自 ...

  9. android 从底部网上的平移动画_Android属性动画,看完这篇够用了吧

    转载自作者新小梦 随着APP的开发周期演进,APP不再满足基础的功能保障,需要有较好视觉体验和交互操作.那么动画效果是必不可少的,动画有帧动画,补间动画,属性动画等等. 本文通过一些简单常见的动画效果 ...

最新文章

  1. 关于String数组的用法
  2. Python学习笔记010——作用域
  3. Linux下利用rsync实现网站镜像同步
  4. matplotlib官方文档pdf_Matplotlib知识
  5. 常用组合逻辑电路及MSI组合电路模块的应用—上篇
  6. 生物化学,材料化学必备!元素周期表
  7. Python基础综合训练三(tkinter牛刀小试)
  8. Hibernate 框架检索策略
  9. 程序员,30岁+,看完让你不再焦虑
  10. 基于Keras的LSTM进行电力负荷预测
  11. 关于RSA共模攻击e1,e2不互素的解法
  12. 关于主从同步时应该注意的一些问题;
  13. 基于ssm Vue+elementui农家乐管理系统java 项目源码介绍
  14. 简述Z-Stack的基本工作原理与流程(OSAL操作系统)
  15. 「数据架构」:主数据管理(MDM)对我的行业有什么帮助?
  16. 基于嵌入式技术的网络视频监控系统
  17. android查ip地址,Android 查看IP地址
  18. 在fragment中引用ListView
  19. 慕课网 springboot学习记录
  20. PostgreSQL + Postgis

热门文章

  1. Excel常用工具---在线版V1.5使用说明
  2. 找不到 Microsoft Excel Driver ODBC 驱动程序的安装例程 解决方案
  3. ElasticsearchBboss MySQL 同步数据到Elasticsearch
  4. 服务器 12 种基本故障+排查方法
  5. 打印机一直不停打乱码的解决方法
  6. 如何将图片制作成画中画特效
  7. SpringMVC框架从入门到精通
  8. 神经网络结构搜索 NAS
  9. 激荡的2020过后,物流江湖下个十年谁主沉浮?
  10. hive、impala 求中位数