Android属性动画与老版View动画不同是直接改变坐标的。 执行属性动画的三种方式 ViewPropertyAnimator 通过View的animate()方法得到这个对象,再使用这个对象去做平移,旋转,缩放等动画。 改变多个属性,直接链式调用。 ObjectAnimator 自定义控件做属性动画需要提供该属性的getter和settter方法。 ObjectAnimator可以设置动画属性计算器TypeEvaluator来给动画属性插值。TypeEvaluator是一个父类,ArgbEvaluator继承自它,也可以自定义一个Evaluator继承自TypeEvaluator实现动画属性计算器。 改变多个属性需要使用PropertyValuesHolder类,通过ObjectAnimator.ofPropertyValuesHolder()方法混合多个holder 改变多个属性都是同一时间开始,要依次执行不同属性动画,则需要使用AnimatorSet混合多个动画 ViewAnimator 是上面两个类的父类,用来计算属性值。 属性动画的几个常用方法 设置动画时长 setDuration() 设置动画速度 setInterpolator() AccelerateDecelerateInterpolator先加速后减速 LinearInterpolator匀速 AccelerateInterpolator持续加速 DecelerateInterpolator持续减速 AnticipateInterpolator加速开始向加速逆方向反弹 OvershootInterpolator加速结尾向加速方向反弹 BounceInterpolator加速结尾向加速方向逆方向反弹 CycleInterpolator会回弹回来 设置监听器 ViewPropertyAnimator.setUpdateListener(),ObjectAnimator.addUpdateListener()参数都是AnimatorUpdateListener类型 |
|
来自: Dragon_chen > 《UI显示》