补间动画和属性动画
补间动画是一种视觉现象,并没有改变View真正的值和属性
属性动画真正改变了View的属性值(如XY的坐标,宽度高度等等)
属性动画重要的类
- ValueAnimator
- ObjectAnimator.ofFloat()
translationX translationY alpha rotation rotationX…
示例1:
//沿着Y轴移动500,执行时间为2000ms,start()启动
tvTest.animate().translationYBy(500).setDuration(2000).start();
效果:
示例2:
这个是通过View自带的方法实现了属性动画的功能:
//两秒钟之内透明度变成0
tvTest.animate().alpha(0).setDuration(2000).start();
效果:
示例3:
ValueAnimator的用法:
值的变化
ValueAnimator valueAnimator = ValueAnimator.ofInt(0,100);
valueAnimator.setDuration(2000);
//添加一个监听器
valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
//valueAnimator实际的值
Log.d("valueAnimator实际的值",animation.getAnimatedValue()+"");
//动画的进度0-1
Log.d("动画的进度",animation.getAnimatedFraction()+"");
}
});
valueAnimator.start();
效果:
示例4:
ObjectAnimator.ofFloat()的使用:
ObjectAnimator objectAnimator = ObjectAnimator.ofFloat(tvTest,"translationY",0,500,200,800);
objectAnimator.setDuration(2000);
objectAnimator.start();
效果: