Android Animation学习笔记

一,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(
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值