OverScroller有一个springBack方法
public boolean springBack(int startX, int startY, int minX, int maxX, int minY, int maxY)
这个方法的startX 和startY很好解释,是起始坐标,minX,maxX,minY,maxY 这4个坐标构成了一个矩形,该方法返回一个boolean值,假如View移动到起始位置时,有部分或者全部位于矩形之外则返回true,反之返回false,那这个又有什么用?返回true,说明控件当前位置不在给定的矩形之内,这个时候我们可以调用刷新方法刷新界面,让控件继续调整位置,直到返回false,完全的在我们指定的矩形空间内。
如果想实现拖动123的文本控件,放开之后,控件始终回到两条红线中间的区域,该如何实现呢?
使用springBack方法会很容易实现,在ACTION_UP事件中,调用springBack方法,startX,startY传入控件当前的x,y坐标,minX,maxX为X轴方向上的方位,所以minX为0,maxX为屏幕的宽度减去控件的宽度,这样x轴方向范围就确定了,而minY应该是控件顶部的高度,即1032,maxY也应该是1032,这样才使控件上面和红线对齐。最后加一下判断,返回true就刷新界面。