属性动画:动画的执行类来设置动画操作的对象的属性、持续时间,开始和结束的属性值,时间差值等,然后系统会根据设置的参数动态的变化对象的属性
包含方法:ofInt、ofFloat、ofObject
setStartDelay()设置延迟时间
setRepeatCount()设置循环次数
setRepeatMode()重复模式,有RESTART(从头开始)和REVERSE(倒序开始)
单一动画的ofObject方法实现
ObjectAnimator.ofFloat(view,"translationX",0F,200F).setDuration(200).start();
translationX-----x轴平移
translationY-----Y轴平移
scaleY-----Y轴缩放
scaleX-----X轴缩放
rotation-----旋转
rotationX-----X轴翻转
rotationY-----Y轴翻转
alpha-----透明度
(2)多动画可创建AnimatorSet创建动画的set集合实现
AnimatorSet set=new AnimatorSet();
ObjectAnimator am1=ObjectAnimator.ofFloat(view,"rotation",0F,360F);
ObjectAnimator am2=ObjectAnimator.ofFloat(view,"translationX",0F,200F);
ObjectAnimator am3=ObjectAnimator.ofFloat(view,"translationY",0F,200F);
//set.playTogether(am1,am2,am3); //----同时执行动画
//set.playSequentially(am1,am2,am3); ------按顺序执行
set.play(am1).with(am3); //先执行an2和an3,后执行an1
set.play(am1).after(am2);
set.setDuration(1000);
set.start();
(3)属性动画的监听器anim.addListener
动画一般为手机某些功能的某些视觉效果,所以,可以创建监听事件在动画开始或者结束时进行下一步操作.
ObjectAnimator是继承自ValueAnimator的,ValueAnimator继承自Animator, ValueAnimator也是继承自Animator,所以ObjectAnimator,ValueAnimator,ValueAnimator都可以使用监听器
anim.addListener(newAnimatorListener() {
@Override
public void onAnimationStart(Animator animation) {
}
@Override
public void onAnimationRepeat(Animator animation) {
}
@Override
public void onAnimationEnd(Animator animation) {
}
@Override
public void onAnimationCancel(Animator animation) {
}
});
如果仅实现监听器中非全部方法,可使用AnimatorListenerAdapter
anim.addListener(newAnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
}
});