动画[1]TweenAnimation 设置

来源:互联网 发布:淘宝网婚房纱幔 编辑:程序博客网 时间:2024/06/04 00:50

【参考链接】

 

TweenAnimation虽然提供了各种不同的动画,但是也具有一些相同的方法

setDuration()

持续时间

 

setFillAfter()

动画结束时View是否停留在结束位置,true表示停在false表示不。

 

setRepeatCount()

重复次数,如果-1则无限循环

 

setRepeatMode()

设置为Animation.RESTART则从头开始重复,设置为Animation.REVERSE则倒着开始重复

 

setInterpolator()

设置插值器

 

setStartOffset()

设置每次动画开始时的延时时间,设置后每次重复时也有延时

ta.setStartOffset(1000);

不过实际显示效果是,会先移动到动画的起始位置,等延时时间过了以后再开始动画

 

start()

startNow()

setStartTime()

3个函数其实都是调用的setStartTime()方法




它并没有真正/立即开始动画,只是设置了状态位,需要我们自己触发重绘

当下次重绘的时候,判断当前时间超出了startTime,才会设置mStarted=true,并且将当前时间+duration设置为结束时间,开始动画。

通过如下方式来使用(功能同View.startAnimation()

public voidtranslate(View view) {
    TranslateAnimation ta=
newTranslateAnimation(
           Animation.
ABSOLUTE,0,
           
Animation.RELATIVE_TO_SELF,0f,
           
Animation.RELATIVE_TO_PARENT,0f,
           
Animation.RELATIVE_TO_PARENT,0.5f);

   
ta.setDuration(2000);
   
ta.setRepeatCount(-1);
   
ta.setRepeatMode(Animation.REVERSE);
   
ta.setInterpolator(newLinearInterpolator());

   
// ta.start();
    // ta.startNow();
   
ta.setStartTime(AnimationUtils.currentAnimationTimeMillis());//3个方法本质是一样的

   
iv.setAnimation(ta);
    // iv.invalidate();
    // invalidate()
高低版本差异不一定会触发父ViewGroup派发
    //
TweenAnimanion是在父ViewGroup dispatchChild()时将Matrix应用到子View的画布上的//所以这个地方不能直接用invalidate()
   
((View)iv.getParent()).invalidate();
   
// iv.requestLayout();
    //
当然用requestLayout()是可以的
}

 

cancel()

停止动画

 

setAnimationListener()

可以给动画添加监听,也是在注册观察者

可以设置onAnimationStart()onAnimationEnd()onAnimationRepeat()时的回调

ta.setAnimationListener(newAnimation.AnimationListener() {
   
@Override
   
public voidonAnimationStart(Animation animation) {
       Log.e(
"shadowfaxghh","onAnimationStart");
   
}

   
@Override
   
public voidonAnimationEnd(Animation animation) {
       Log.e(
"shadowfaxghh","onAnimationEnd");
   
}

   
@Override
   
public voidonAnimationRepeat(Animation animation) {
       Log.e(
"shadowfaxghh","onAnimationRepeat");
   
}
})
;

 

 

原创粉丝点击