TimeAnimator:提供了一个简单的回调机制,通过 TimeAnimator.TimeListener,在动画的每一帧处通知你。这个动画器没有时间,插值或是对象值设定。回调监听器为每一帧动画接受信息,包括总运行时间和从前一帧到现在的运行时间.
相关方法:
setTimeListener(TimeAnimator.TimeListener listener):设置监听器.
start():开始动画
TimeAnimator.TimeListener:
实现这个接口可以对动画的每一帧进行监听
onTimeUpdate(TimeAnimator animation, long totalTime, long deltaTime)
animation:发出通知的动画
totalTime:动画开始以来的总时间,以毫秒为单位
deltaTime:从前一帧到现在的运行时间,以毫秒为单位
Android开发:使用ValueAnimator动画
在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();;
© 2014, 冰冻鱼. 请尊重作者劳动成果,复制转载保留本站链接! 应用开发笔记