补间动画简介
补间动画指的是做FLASH动画时,在两个关键帧中间需要做“补间动画”,才能实现图画的运动;插入补间动画后两个关键帧之间的插补帧是由计算机自动运算而得到的。
补间动画分类
补间动画根据最终实现效果可以分为四类,分别是:AlphaAnimation、ScaleAnimation、TranslateAnimiation、RotateAnimation,关于这四种分类的简单说明用表格展示。
名称 | 子类 | 标签 | 作用 |
---|---|---|---|
平移动画 | TranslateAnimiation | <translate> | 平移view |
缩放动画 | ScaleAnimation | <scale> | 缩放view |
透明度动画 | AlphaAnimation | <alpha> | 改变view的透明度 |
旋转动画 | RotateAnimation | <rotate> | 旋转view |
插值器
插值器(Interpolator),用来控制动画的变化速度,Android已经为我们内置了五个插值器,它们都实现了Interpolator接口。当然我们可以自己实现Interpolator来控制动画的变化速度。
插值器 | 资源ID | 作用 |
---|---|---|
AccelerateDecelerateInterpolator | accelerate_decelerate_interpolator | 其变化开始和结束速率较慢,中间加速 |
AccelerateInterpolator | accelerate_interpolator | 其变化开始速率较慢,后面加速 |
DecelerateInterpolator | decelerate_interpolator | 其变化开始速率较快,后面减速 |
LinearInterpolator | linear_interpolator | 其变化速率恒定 |
AnticipateInterpolator | anticipate_interpolator | 开始向后甩,然后向前 |
AnticipateOvershootInterpolator | anticipate_overshoot_interpolator | 其变化开始向后甩,然后向前甩,过冲到目标值,最后又回到了终值 |
OvershootInterpolator | overshoot_interpolator | 其变化开始向前甩,过冲到目标值,最后又回到了终值 |
BounceInterpolator | bounce_interpolato | 在结束时反弹 |
CycleInterpolator | cycle_interpolator | 循环播放,其速率为正弦曲线 |
TimeInterpolator | 一个接口,可以自定义插值器 |
插值器使用时通过动画xml文件中interpolator属性设置,示例代码:
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:fromAlpha="1.0"
android:toAlpha="0.1"
android:duration="2000"/>
这段代码引用的插值器就是AccelerateDecelerateInterpolator,变化速度开始和结束较慢,中间加速。
补间动画的创建形式
1. xml文件形式
2. Java代码形式
接下来将分别介绍补间动画的四种动画分类,先从平移动画开始,详见《android补间动画之平移动画》