Android 3.0之前已有动画框架Animation(详见:Android之视图动画Animation),但存在一些局限性,当某个元素发生视图动画后,其响应事件位置还在动画前的地方。于是3.0之后,Google提出了属性动画。
ObjectAnimator
|
|
第一个参数:操纵的view
第二个参数:操纵的动画属性值
第三个参数:可变数组参数
动画属性值
translationX和translationY:增量控制view从它布局容器左上角坐标偏移
rotation、rotationX、rotationY:控制view绕支点进行2D或3D旋转
scaleX、scaleY:控制view绕支点进行2D缩放
alpha:控制view透明度,默认是1(不透明),0完全透明(不可见)
x和y:描述view在容器最终位置
可变数组参数
可以有一个到N个,如果是一个值的话默认这个值是动画过渡值的结束值。如果有N个值,动画就在这N个值之间过渡。
动画监听
|
|
一般我们只关心onAnimationEnd,所以Android提供了AnimatorListenerAdapter:
ValueAnimator
ValueAnimator 本身不提供任何动画效果,像个数值 发生器,用来产生具有一点规律数字。
PropertyValuesHolder
针对同一个对象多个属性,同时作用多种动画
AnimatorSet
与PropertyValuesHolder类似,但AnimatorSet多了playTogether(同时执行)、playSequentially(顺序执行)、play(objectAnimator1).with(objectAnimator2)、before、after这些方法协同工作。
xml使用属性动画
res下建立animator文件夹,然后建立res/animator/set_animator.xml
调用:
动画组合
set标签,有一个orderring属性设置为together,还有另一个值:sequentially(表示一个接一个执行)。
View的animate方法
Android 3.0后,谷歌给View增加animate方法直接驱动属性动画。
布局动画
设置子View过渡动画
|
|