以下是我写的源码,麻烦大家花一点时间看看为什么会没有滚动效果呢public class BapsDistance extends LinearLayout {
private Scroller mScroller;
private int startX;
private int startY;
private int moveX = 103;
private int moveY = 103; public BapsDistance(Context context) {
this(context, null);
// TODO Auto-generated constructor stub
} public BapsDistance(Context context, AttributeSet attrs) {
super(context, attrs);
mScroller = new Scroller(context);
} @Override
public void computeScroll() {
// TODO Auto-generated method stub
if (mScroller.computeScrollOffset()) {
scrollTo(0, mScroller.getCurrY());
postInvalidate();
}
} @Override
public boolean onTouchEvent(MotionEvent event) {
// TODO Auto-generated method stub
float rawY = event.getRawY();
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
if (rawY > 0 && rawY < 75) {
up();
return false;
} else if (rawY > 178 && rawY < 253) {
down();
return false;
}
break;
}
return super.onTouchEvent(event);
} public void down() {
if (startY < 720) {
mScroller.startScroll(startX, startY, moveX, moveY);
startY += 103;
startX += 103;
}
} public void up() {
if (startY > 0) {
mScroller.startScroll(startX, startY, -moveX, -moveY);
startY -= 103;
startX -= 103;
}
}
}