近日研究动画,失眠几日终于搞定,将心得整理于此,借以警惕自己,要提高自我学习的能力,要细心,更要淡定!
两大重点:
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动画,将不会产生恢复细节的闪动状态。这句代码简单大救于我啊,纠结数日的闪动搞定啦@@@嘿嘿