重写onScrollChanged判断滑动方向,onOverScrolled控制滑动距离

public class PosterScrollView extends HorizontalScrollView {

private int offset = 0;

public PosterScrollView(Context context, AttributeSet attrs) {
super(context, attrs);
setFocusable(false);
setFocusableInTouchMode(false);
}

@Override
protected void onScrollChanged(int l, int t, int oldl, int oldt) {
super.onScrollChanged(l, t, oldl, oldt);
if(l > oldl) {
offset = 15;
} else if (l < oldl) {
offset = -15;
}
}

@Override
protected void onOverScrolled(int scrollX, int scrollY, boolean clampedX,
boolean clampedY) {
super.onOverScrolled(scrollX + offset, scrollY, clampedX, clampedY);
}
}