安卓开发-动画

动画

视图动画:将逐帧动画和补间动画统称为视图动画,用于指定控件的动画

逐帧动画:以xml或者代码的方式,实现多帧动画的播放

补间动画:对控件可以进行移动、旋转、缩放等操作

属性动画:通过改变控件的某一属性来做动画。

创建方式:

1.ValueAnimator

1.通过ValueAnimator.ofInt(a,b)方法获得ValueAnimator对象

2.对1中生成的对象添加addUpdateListener监听

1)在内部监听通过getAnimatedValue()拿到1中ofInt设置的从a向b正在变化的数值,然后可以通过layout 或者 getLayoutParams等方法,实时改变控件的位置和长宽等属性

2)设置animator的持续时间,重复等属性

2.ObjectAnimator

由ValueAnimator类派生而来,解决ValueAnimator需在监听动画过程中才能对控件进行操作,ObjectAnimator直接调用OfFloat(指定控件,操作的属性,可变长的指定的操作)方法

3.AnimatorSet

ValueAnimator和ObjectAnimator只能实现一个动画,使用组合动画需要使用AnimatorSet,调用桉按顺序执行-playSequentially(传入任意多个Animator);同时执行-playTogether(List<Animator>)

注意:对于AnimatorSet设置的目标插件,单次动画时长和插值器等属性(动画延时和AnimatorSet不会进行覆盖),会覆盖整个集合中单个动画相关属性

AnimatorSet.Builder

解决AnimatorSet中各动画个性化组合

4.使用PropertyValueHolder来构建属性动画对象

通过PropertyValuesHolder的ofObject/ofKeyframe(给予关键帧,即完成度的百分比和位置即可自动实现动画,最少需要2帧)方法创建出PropertyValueHolder对象,再由ObjectAnimator通过ofPropertyValuesHolder方法生成ObjectAnimator进行动画

5.ViewPropertyAnimator

为View对象上的选择属性启用自动和优化的动画

为ViewGroup内部组件添加动画

1.给ViewGroup设置animateLayoutChanges属性,即可实现在添加/删除时带有默认动画

2.LayoutTransition

1)创建实例实例

2)创建动画并对1中的实例进行设置 可设置下图中的属性

3)将此实例设置到GroupView中

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值