android动画的抖动轨迹及淡入淡出效果

近日研究动画,失眠几日终于搞定,将心得整理于此,借以警惕自己,要提高自我学习的能力,要细心,更要淡定!

两大重点:

1.Tweener的动画参数的使用以意义。

2.ObjectAnimator动画及动画轨迹的使用。

其中的失误点有:delay的使用,rotation的使用以动画轨迹的构造。

tweener是依靠draw来重绘布局,所以在tweener里添加的项需在draw里实现相应的get和set函数。

tweener的相关项有:

1.duration

表示该动画所播放需要的时间;

2.ease

可以自定义动画从起始值到结束值的播放轨迹,实现自己的getInterpolator,可以线性,sin,log,梯形皆可。

如抖动设置「25,0」其行走的轨迹为sin曲线。

3.alpha

表示动画的透明度,可通过控制运动轨迹实现淡入淡出。

4.rotation

动画旋转的角度,2D旋转,3D的旋转需使用rotationX,rotationY的参数。

可通过设置repeatcount,repeatmode来设置抖动的频率。

5.delay

表示开始动画的延迟时间,调用start后多久才播放动画。之前忽略了这个参数,一直想不明白动画间会相互影响,原来是设置了延时,该打!嘿嘿

6.scaleX,scaleY

表示控件拉伸的尺度,水平方向及竖直方向的伸缩。

7.x y

表示控件从动画开始到结束的位置播放的空间。

8.ObjectAnimator

可支持轨迹动画,设置起点和结束点。可多动画同时执行。

9TranslateAnimation

位移动画。TranslateAnimation firstIntoAnima = new TranslateAnimation(0,0,indexX,indexY);

主要需要注意的地方有,setfillafter接口可设置动画位移后停留在结束的位置;若要停留在开始的位置,又想隐藏由结束跳到开始的细节,设计如下:

在动画的onAnimationEnd接口中重设动画,TranslateAnimation anim = new TranslateAnimation(0,0,0,0);并start,此时前一次未做完的回到开始点的动画将被取消,

并重新开启此次reset动画,将不会产生恢复细节的闪动状态。这句代码简单大救于我啊,纠结数日的闪动搞定啦@@@嘿嘿

 

posted @ 2013-08-20 21:30  莫失莫忘zxc  阅读(2404)  评论(1编辑  收藏  举报