动画研究 一


Android中的动画分为视图动画(View Animation)、属性动画(Property Animation)以及Drawable动画。


视图动画就是很早就已出现被大家所熟知的:translate平移、rotate翻转、alpha透明度渐变、scale缩放、animationset动画组合五大类。而该类视图动画只能用在View上,且xml文件只能放在res/anim下,父类就是Animation。

属性动画后面才出来,主要是ValueAnimator及其子类ObjectAnimator,且xml文件只能放在res/animator下,父类是Animator。与视图动画不同,同样改变一个view,它可以改变view的属性,而视图动画仅仅是一个动画效果。


Interpolator

它是用来控制变化速率的接口,继承关系:

abstract public class BaseInterpolator implements Interpolator
Interpolator extends TimeInterpolator

而系统已经实现了的一些速率变化类需要了解这几个:

LinearInterpolator 线性,即匀速变化,加速度为0

AccelerateInterpolator 加速,即加速变化,加速度逐渐增加

DecelerateInterpolator 减速,即减速变化,加速度逐渐减少

AccelerateDecelerateInterpolator 速率变化先加速再减速

BounceInterpolator 类似于一个球落地之后反复弹起直至静止的速率变化

AnticipateInterpolator 先回退一小步,然后再迅速前进

OvershootInterpolator 冲过了头回滚一点

AnticipateOvershootInterpolator 以上两点结合

CycleInterpolator 正弦周期变化


动画的执行全是依靠的handler和runnable来做的,一般不会出现卡帧的情况,一旦出现说明哪里代码有耗时问题。需要提出一点是AnimationSet,它是所有动画的集合,且可以顺序执行,也可以打乱执行。


你可能感兴趣的:(动画研究 一)