android动画

Android属性动画和View动画的区别及用法

  1. 定义和用法区别

属性动画(Property Animation)

  • 定义: 属性动画系统允许你动画化任何对象的属性。这意味着这个动画系统不仅可以用于视图对象,还可以用于不绘制到屏幕上的对象。

  • 用法: 属性动画通过ValueAnimatorObjectAnimator类实现。ObjectAnimator可以直接指定某个对象的某个属性进行动画操作,而ValueAnimator只是提供一系列的数值,需要开发者自己来应用这个数值。

  • 常用方法:

    • ObjectAnimator.ofFloat(Object target, String propertyName, float... values)

    • ObjectAnimator.ofInt(Object target, String propertyName, int... values)

    • ValueAnimator.ofFloat(float... values)

    • ValueAnimator.ofInt(int... values)

    • animator.setDuration(long duration)

    • animator.setInterpolator(TimeInterpolator value)

    • animator.start()

View动画(View Animation)

  • 定义: View动画包括缩放、平移、旋转和透明度动画,它主要是对View进行操作,也就是所谓的补间动画(Tween Animation)。

  • 用法: View动画主要通过XML文件定义,在XML中使用<alpha>, <scale>, <translate>, <rotate>等标签定义动画,然后通过AnimationUtils.loadAnimation(context, R.anim.animation_resource)加载动画。

  • 常用方法:

    • AnimationUtils.loadAnimation(Context context, int id)

    • view.startAnimation(Animation animation)

    • animation.setDuration(long durationMillis)

    • animation.setInterpolator(Interpolator i)

  1. 类的继承关系

属性动画类的继承关系

  • ValueAnimator 继承自 Animator

  • ObjectAnimator 继承自 ValueAnimator

  • AnimatorSet 可以组合多个 Animator 对象

View动画类的继承关系

  • Animation 是所有View动画的基类

  • AlphaAnimation, ScaleAnimation, TranslateAnimation, RotateAnimation 都继承自 Animation

  • AnimationSet 可以组合多个 Animation 对象

  1. 总结
  • 属性动画:

    • 可以对任意对象的属性进行动画操作。

    • 动画默认作用于对象,不仅限于View。

    • 能够实现更复杂的动画效果,如:路径动画。

    • API 11(Android 3.0)开始引入。

  • View动画:

    • 只能对View进行操作。

    • 动画只能应用于View的四种变换:平移、缩放、旋转、透明度。

    • 实现简单,主要通过XML配置。

    • 存在较长时间,API 1(Android 1.0)就已经引入。

属性动画提供了更多的灵活性和功能,但是如果只需要实现简单的View动画效果,View动画仍然是一个简单且有效的选择。

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值