组合动画
实现 组合动画 的功能: AnimatorSet
类
1 | AnimatorSet.play(Animator anim) :播放当前动画 |
###### 实例练习
实现效果:主要动画是平移,平移过程中伴随旋转动画,平移完后进行透明度变化
> 实现方式有
XML
设置 / Java
代码设置方式1:Java代码设置
1 | // 步骤1:设置需要组合的动画效果 |
效果:
方式2: XML 设置
set_animation.xml
1 |
|
在java代码中启用动画
1 | mButton = (Button) findViewById(R.id.Button); |
基本上和前面学的差不多。
快捷使用
简介
- 从属性动画的原理可知,属性动画的本质是:对值进行操作
- 但
Java
是面向对象的,所以Google
团队添加面向对象操作的属性动画使用 -ViewPropertyAnimator
类
- 可认为是属性动画的一种简写、快捷使用方式
使用
1 | View.animate().xxx().xxx(); |
实例:
1 | mButton = (Button) findViewById(R.id.Button); |
有很多可以连缀的语法,用到时候再去查。
监听动画
Animation
类通过监听动画开始 / 结束 / 重复 / 取消时刻来进行一系列操作,如跳转页面等等
使用
- 通过在
Java
代码里addListener()
设置
1 | Animation.addListener(new AnimatorListener() { |
注意
- 因
Animator
类、AnimatorSet
类、ValueAnimator
、ObjectAnimator
类存在以下继承关系
- 所以
AnimatorSet
类、ValueAnimator
、ObjectAnimator
都可以使用addListener()
监听器进行动画监听
动画适配器
有些时候我们并不需要监听动画的所有时刻,但addListener(new AnimatorListener())
监听器是必须重写4个时刻方法,这使得接口方法重写太累赘,因此采用动画适配器(AnimatorListenerAdapter
),解决实现接口繁琐 的问题
1 | anim.addListener(new AnimatorListenerAdapter() { |
Demo 地址
https://github.com/Commandercc/DemoEX/blob/master/AnimationDmeo3.zip