在Android 3.0中,新引入了除补间动画Tween Animation、帧动画Frame Animation以外的第三种动画,属性动画Property Animation就是ValueAnimator类.特点:ValueAnimator通过改变对象的属性值来实现界面的改变,而其他动画,只是界面显示上的改变,动画结束后,你会发现,即使view已经运动到别的位置,但click事件还是在原来的地方,ValueAnimator不会有这个问题。ValueAnimator有两个子类,一个是TimeAnimator,一个是ObjectAnimator。 TimeAnimator在api 16才引入,它并不能直接实现动画效果,而是在TimeListener里返回动画持续的时间,与上次调用的间隔时间,要怎么改变view,需要自己操作。 ObjectAnimator可以直接改变对象的属性值,比如,我们可以通过改变ProgressBar的progress属性,实现进度的改变.
ObjectAnimator objectAnimator=ObjectAnimator.ofInt(progressBar,"progress",1,100);
objectAnimator.setDuration(10000);
objectAnimator.setInterpolator(new AccelerateDecelerateInterpolator());
objectAnimator.start();
//api 16 android 4.1以上版本才有
TimeAnimator timeAnimator=new TimeAnimator();
timeAnimator.setTimeListener(new TimeAnimator.TimeListener() {
@Override
public void onTimeUpdate(TimeAnimator animation, long totalTime, long deltaTime) {
System.out.println(totalTime+" "+deltaTime);
}
});
timeAnimator.start();;