构造函数
TranslateAnimation(float fromXDelta, float toXDelta, float fromYDelta, floattoYDelta)
Delta,顾名思义表示的是一个后一个和前一个的差值。XDelta即表示在X方向上的差值,同理YDelta表示在Y方向的差值。 若XDelta>0,则说明控件向右侧发生移动,否则向左侧移动,Y轴方向是相同的道理。现在来说下各个参数的意思:
fromXDelta:控件的开始移动前的位置,为什么是Delta呢?因为在此之前,该控件可能已经发生过了位移,因此它已经偏离了控件最初始的位置。因此采用了距离最初始位置的偏移量。
toXDelta:相同道理, 想要移动的终点位置距离最初始位置的偏移量。记住,一定不要混淆的是,不要把这个最初始位置当成是移动开始前控件的位置,否则将会发生错误移动。
// 左右移动动画 Animation animation = new TranslateAnimation(one * currentIndex, one * position, 0, 0); currentIndex = position; // 图片停留在动画结束的位置 animation.setFillAfter(true); animation.setDuration(100); imageView.startAnimation(animation);