Scroller类是实现View能够滚动的一个帮助类。效果如下所示:
要实现以上的效果还要一个类就是GestureDetector类,这个类是实现手势类。
现在我们来探讨一下这两个类。
首先说说Scroller类,定义对象private Scroller mScroller = new Scroller(context);
相关方法:mScroller.getCurrX() 该方法为获取当前水平滚动的位置
mScroller.getCurrY() 该方法为获取当前竖直滚动的位置
mScroller.getFinalX() 该方法为获取最终停止的水平位置
mScroller.getFinalY() 该方法为获取最终停止的竖直位置
mScroller.setFinalX(int newX) 该方法设置最终停留水平位置,没有动画效果,直接到最终位置
mScroller.setFinalY(int newY) 该方法设置最终停留竖直位置,没有动画效果,直接到最终位置
mScroller.startScroll(int startX, int startY, int dx, int dy) 该方法为开始滚动,startX,startY为开始滚动的位置,dx,dy为滚动的偏移量,默认完成时间为250ms
mScroller.startScroll(int startX, int startY, int dx, int dy, int duration) 该方法同上一方法,但多一个参数duration, 设置完成时间
mScroller.computeScrollOffset() 方法返回值为boolean类型,为true表示滚动尚未完成,false表示滚动已经完成
我们定义方法
public void viewScrollTo(int x, int y) { //滚动到位置(x,y)
mScroller.startScroll(mScroller.getFinalX(), mScroller.getFinalY(), x - mScroller.getFinalX(), y-mScroller.getFinalY());
invalidate(); //刷新View,确保调用方法public void computeScroll()
}
public void