安卓的Tween Animation分为4种动画效果,分别是:alpha (透明变化) translate(位置移动) scale(缩放) rotate(旋转)。

其中Translate动画就是定义一个开始的位置和一个结束位置,定义移动时间,然后就能自动产生移动动画,实现控件的动态位移。Android的translate移动方向有 横向(X) 竖向(Y)

TranslateAnimation(float fromXDelta, float toXDelta, float fromYDelta, float toYDelta)

参数说明如下:

float fromXDelta 动画开始的点离当前View X坐标上的差值 

float toXDelta 动画结束的点离当前View X坐标上的差值 

float fromYDelta 动画开始的点离当前View Y坐标上的差值 

float toYDelta 动画开始的点离当前View Y坐标上的差值

要注意的是参数fromXDelta指的是开始动画时的点的X坐标相对于View初始位置时X坐标的偏移量,例如一开始设置View的X坐标为3,经过第一次动画移动到X坐标为10的位置,当进行第二次动画时,参数fromXDelta指的是第二次动画开始的点的坐标相对于初始位置(X坐标为3)的偏移量,而不是相对于第一次移动过后(X坐标为10)的偏移量;Y坐标的偏移量也是如此。如果不注意这点,当进行多次动画时将会发生错误移动。

示例代码:

Animation animation = new TranslateAnimation(10f,100f,0,0);//平移动画

animation.setFillAfter(true);//动画终止时停留在最后一帧,不然会回到没有执行前的状态

animation.setDuration(200);//动画持续时间0.2秒

p_w_picpathview.startAnimation(animation);//是用ImageView来显示动画的


------有什么疑问大家可以评论交流spacer.gif