补间动画是一种视觉现象,并没有真正改变属性的值,仅仅是在视觉上欺骗了使用者。
属性动画真正改变了控件的属性值
⒈属性动画
ValueAnimator
ObjectAnimator.ofFloat()
tvTest = findViewById(R.id.tvTest); //把tvTest沿y轴平行移动500个单位,时间为2000毫秒,translationY()是移动到哪里 //通过View自带的方法实现属性动画的功能 tvTest.animate().translationYBy(500).setDuration(2000).start(); //补间动画控件的属性并没有改变,而属性动画后控件的属性实质发生了变化 //scaleXBy 缩放 rotationYby 旋转 translationYby alpha 渐变 tvTest.animate().alpha(0).setDuration(2000).start(); ValueAnimator valueAnimator = ValueAnimator.ofInt(0,100); valueAnimator.setDuration(2000); valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { @Override public void onAnimationUpdate(ValueAnimator animation) { //valueAnimator实际的值 1 - 100 Log.d("aaa",animation.getAnimatedValue().toString()); //动画的进度 0 - 1 Log.d("aaa",String.valueOf(animation.getAnimatedFraction())); } }); valueAnimator.start(); ObjectAnimator objectAnimator = ObjectAnimator.ofFloat(tvTest,"translationY",0,500); objectAnimator.setDuration(2000); objectAnimator.start();