1. Android 平台提供了一套完整的动画框架,使得开发者可以用它来开发各种动画效果,

不同Activity切换,不同View之间切换,Layout, 显示列表,显示表格都可以使用动画效果


android 2.2之前 Android 中 Animation 资源可以分为两种:
Tween Animation: 对单个图像进行各种变换(缩放,平移,旋转等)来实现动画。
Frame Animation :由一组图像顺序显示显示动画,顺序播放事先做好的图像,如电影。


android 3.0(API level 11)后Animation 增加了property animation.


2.tween animation
tween animation又称view animation,其只能应用与View对象。
View Animation就是一系列View形状的变换,如大小的缩放,透明度的改变,位置的改变,动画的定义既可以用代码定义也可以用XML定义
用xml定义View Animation,放在/res/anim文件夹下,



3. Property Animation
属性动画,这个是在Android 3.0中才引进的,而且是官方建议优先使用的方法,其更灵活,提供更多的特性,而且不像View Animation只能用在view上,属性动画可以即应用于view也可以应用与非view.


Property Animation中,改变的是对象的实际属性,如Button的缩放,Button的位置与大小属性值都改变了。而且Property Animation不止可以应用于View,还可以应用于任何对象。Property Animation只是表示一个值在一段时间内的改变,当值改变时要做什么事情完全是你自己决定的。
在Property Animation中,可以对动画应用以下属性:
Duration:动画的持续时间
TimeInterpolation:属性值的计算方式,如先快后慢
TypeEvaluator:根据属性的开始、结束值与TimeInterpolation计算出的因子计算出当前时间的属性值
Repeat Country and behavoir:重复次数与方式,如播放3次、5次、无限循环,可以此动画一直重复,或播放完时再反向播放
Animation sets:动画集合,即可以同时对一个对象应用几个动画,这些动画可以同时播放也可以对不同动画设置不同开始偏移
Frame refreash delay:多少时间刷新一次,即每隔多少时间计算一次属性值,默认为10ms,最终刷新时间还受系统进程调度与硬件的影响


4. tween animation原理分析


Animation 和 Transformation,这两个类是实现动画的主要的类,Animation 中主要定义了动画的一些属性比如开始时间、持续时间、是否重复播放等,这个类主要有两个重要的函数:getTransformation 和 applyTransformation,在 getTransformation 中 Animation 会根据动画的属性来产生一系列的差值点,然后将这些差值点传给 applyTransformation,这个函数将根据这些点来生成不同的 Transformation,Transformation 中包含一个矩阵和 alpha 值,矩阵是用来做平移、旋转和缩放动画的,而 alpha 值是用来做 alpha 动画的(简单理解的话,alpha 动画相当于不断变换透明度或颜色来实现动画),以上面的平移矩阵为例子,当调用 dispatchDraw 时会调用 getTransformation 来得到当前的 Transformation,所以具体的动画只需要重载 applyTransformation 这个函数即可,
用户可以定义自己的动画类,只需要继承 Animation 类,然后重载 applyTransformation 这个函数。对动画来说其行为主要靠差值点来决定的,比如,我们想开始动画是逐渐加快的或者逐渐变慢的,或者先快后慢的,或者是匀速的,这些功能的实现主要是靠差值函数来实现的,Android 提供了 一个 Interpolator 的基类,你要实现什么样的速度可以重载其函数 getInterpolation,在 Animation 的 getTransformation 中生成差值点时,会用到这个函数。

更多相关文章

  1. Android(安卓)8.1 关机充电动画(二)Uboot模式
  2. Android基础知识整理
  3. Android(安卓)apk签名、第三方内置、图标添加与删除、开关机动画
  4. android listView滚动时隔行出现黑色分割线
  5. Android(安卓)添加系统设置属性的实现及步骤
  6. Android启动脚本init.rc分析
  7. Android属性动画完全解析(中),ValueAnimator和ObjectAnimator的高
  8. android.graphics.Movie
  9. LatinIME输入法分析

随机推荐

  1. android 手机获取当前连接的wifi配置信息
  2. Android接口初了解
  3. Android 签名出错
  4. android判断网络连接状态
  5. android cmd aapt
  6. [Android] 更改关联的源码路径
  7. Android手机开发:开机自动启动程序
  8. 如何在Android中在fragment中实现点击按
  9. Android EventBus 传递消息
  10. Android 将Button设置为圆角