本篇文章属于android仿薄荷卷尺系列文章
- 代码地址
HorizontalScroll - HorizontalScroll控件作用
一个经典的根据根据手势滑动和通过scrollBy/to 来实现滑动的控件。 - Scroller.fling
- 为了实现惯性滑动,使用到了Scroller.fling。
public void fling(int startX, int startY, int velocityX, int velocityY,
int minX, int maxX, int minY, int maxY) ;
- Scroll.fling要结合computeScroll使用
......
case MotionEvent.ACTION_UP:
mVelocityTracker.computeCurrentVelocity(1000);
float xvel=mVelocityTracker.getXVelocity(mPointActivtyId);
if(Math.abs(xvel)>ViewConfiguration.get(getContext()).getScaledMinimumFlingVelocity()) {
mFlingScroller.fling(
getScrollX(), getScrollY(),
-(int) xvel, 0,//数据设为计算出的速度的相反值
Integer.MIN_VALUE, Integer.MAX_VALUE,
0, 0);
}
break;
......
@Override
public void computeScroll() {
super.computeScroll();
if (mFlingScroller.computeScrollOffset()) {
int currX = mFlingScroller.getCurrX();
scrollTo(currX, mFlingScroller.getCurrY());
invalidate();//通知视图重绘
}
}
4.注意点
computeScroll()函数中要主动调动 invalidate()通知视图重绘