Android动画之Animation和Animator

Android 动画分为Animation和Animatior两大类。其中:
Animation包括:逐祯动画,补间动画
Animator包括:属性动画

区别:Animation动画的作用对象只能是View,而Animator动画的作用对象可以是任何对象(这其中当然也包括View)

下面详细说说各种动画:
Animation:
1.逐祯动画(AnimationDrawble)
支持java和xml两种实现方式。
其中xml实现是在res/drawable目录下新建xml文件即可。支持标签可以参考AnimationDrawble类的注释:
An AnimationDrawable defined in XML consists of a singl{@code } element and a series of nested {@code } tags. Each item defines a frame of the animation.

2.补间动画
补间动画主要包括:AlphaAnimation,TranslateAnimation,RotateAnimation,ScaleAnimation。
支持java和xml两种实现方式。
xml实现是在res/anim/目录下新建xml文件。xml中使用的标签有:
如果是单个动画,对应的根标签分别是alpha,translate,rotate,scale。
如果是多个动画则跟标签是set,set下根据动画类型分别是alpha,translate,rotate,scale标签。

3.动画集
对应的类是AnimationSet

4.动画监听器
对应的类是AnimationListener

Animator:
属性动画一般包括:ValueAnimator,ObjectAnimator。其中ObjectAnimator是ValueAnimator的子类。
1.ValueAnimator
支持java和xml两种实现方式。
java实现可以通过以下方法进行获取ValueAnimator的对象实例:

public static ValueAnimator ofInt(int... values)
public static ValueAnimator ofFloat(float... values)
public static ValueAnimator ofObject(TypeEvaluator evaluator, Object... values)

可以通过监听器AnimatorUpdateListener获取当前属性的值。
xml实现是在res/animator/创建xml文件,ValueAnimator对应的xml文件使用的标签是animator。

2.ObjectAnimator
原理:控制值的变化,之后自动赋给对象的属性,从而实现动画。
与ValueAnimator对比:

  • 是ValueAnimator的子类
  • ValueAnimator只是对值进行平滑的动画过渡;ObjectAnimator直接对任意对象的任意属性进行动画操作,如View的alpha属性
  • ValueAnimator需要我们为对象属性手动赋值;ObjectAnimator会为对象属性自动赋值

ObjectAnimator支持java和xml两种实现方式。
xml实现是在res/animator/创建xml文件,ObjectAnimator对应的xml文件使用的标签是objectAnimator。

3.动画集
对应的类是AnimatorSet
同时也可以通过PropertyValuesHolder、ViewPropertyAnimator(作用对象是view)实现多个动画。

4.动画监听器
对应的类是AnimatorListener

备注:除了以上提到的Animation和Animator,SurfaceView也可以实现动画,这里不作介绍。

相关参考文章:
https://www.jianshu.com/p/a480ca619dd9
https://www.2cto.com/kf/201606/514284.html?fopyfc=9ldc03
https://www.jianshu.com/p/609b6d88798d

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值