Android Animation学习笔记

本文详细介绍了Android的动画系统,从View Animation到Property Animation,再到ViewPropertyAnimator。重点阐述了Property Animation的优势,如能作用于任何对象,以及关键类如ValueAnimator、ObjectAnimator和AnimatorSet的使用。此外,还提到了高端用法,如自定义Interpolator和通过keyframe定义动画阶段,最后讲解了ViewPropertyAnimator的优化特性,如避免反射和提高效率。
摘要由CSDN通过智能技术生成

一,View Animation

View Animation是Android早期的动画系统,它包括Tween Animation以及Frame Animation
1. Tween Animation: 补间动画,使用资源定义的时候放到res/anim目录
2. Frame Animation:帧动画,使用资源定义的时候放到res/drawable目录。可以直接指定为某个ImageView的android:src,适合用来做各种loading动画。

二,Property Animation

与View Animation的区别
  1. View Animation只能应用于View对象,Property Animation可以应用于任何Object。而且View Animation只能改变View的一部分特征,例如大小位置旋转角度和透明度。
  2. View Animation只修改View的draw,实际上其属性并没有改变。例如将一个Button移动到另外的位置,但是它的点击响应区域还是原来的地方。
  3. 如果你的需求能用View Animation实现的话也无妨,因为View Animation更容易写。
关键类:

ValueAnimator, ObjectAnimator, AnimatorSet
* ValueAnimator: Property Animator的实现主要包括两个方面:一是根据start value, end value和interpolator,将elapsed fraction转化为interpolated fraction(对于使用线性interpolator的Animator来说,elapsed fraction和interpolated fraction是一样的)。二是将计算出来的interpolated fraction应用到对象的property中。ValueAnimator正是用于实现第一个步骤的。
* ObjectAnimator: ValueAnimator的子类,它可以同时负责Property Animator的两个任务。所以更多时候我们直接用它来实现动画,但是它的限制也更多。项目中一般直接用这个的居多,简单方便。
* AnimatorSet: 用于组合多个Animator来实现复杂动画。
* Animator.AnimatorListener -> AnimatorListenerAdapter简化
ValueAnimator.AnimatorUpdateListener

示例

1,使用ObjectAnimator

private void animateWithObjectAnimator() {
    PropertyValuesHolder alphaHolder = PropertyValuesHolder.ofFloat("alpha", 1.0f, 0.0f);
    PropertyValuesHolder scaleXHolder = PropertyValuesHolder.ofFloat("scaleX", 1.0f, 0.0f);
    PropertyValuesHolder scaleYHolder = PropertyValuesHolder.ofFloat("scaleY", 1.0f, 0.0f);
    PropertyValuesHolder xHolder = PropertyValuesHolder.ofFloat("x", 0.0f, 800.0f);
    ObjectAnimator animator = ObjectAnimator.ofPropertyValuesHolder(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值