下面是主要代码,在左右划动时,会左右不正常跳动。 public boolean onInterceptTouchEvent(MotionEvent ev) {
Log.i("sean", "**********1:" + ev.getAction());
if(isMove)
return true;
else
return false;
}
@Override
public boolean dispatchTouchEvent(MotionEvent ev){
Log.i("sean", "%%%%%%%%%%%%%%%1:"+ev);
int action = ev.getAction();
switch (action) {
case MotionEvent.ACTION_DOWN:
goScroll = -1;
myEvent = ev;
touchX = (int) ev.getX();
touchY = (int) ev.getY();
isMove = false;
// return true;
break;
case MotionEvent.ACTION_MOVE:
myEvent2 = ev;
if(isMove)
return true;
absX = Math.abs((int) ev.getX() - touchX);
absY = Math.abs((int) ev.getY() - touchY);
if (absX > 10 || absY > 10) {
if (absX > absY) {
Log.i("sean", "%%%%%%%%%%%%%%%2:" + myEvent + "&&" + myEvent2);
if (touchX > ev.getX())
goScroll = 1;// right-lfet
else
goScroll = 2;// lfet-right
isMove = true;
}
}else{
return true;
}
break;
case MotionEvent.ACTION_UP:
Log.d("sean", "dispatchTouchEvent ACTION_UP");
break;
case MotionEvent.ACTION_CANCEL:
Log.d("sean", "dispatchTouchEvent ACTION_CANCEL");
break;
}
return super.dispatchTouchEvent(ev);
}
Log.i("sean", "**********1:" + ev.getAction());
if(isMove)
return true;
else
return false;
}
@Override
public boolean dispatchTouchEvent(MotionEvent ev){
Log.i("sean", "%%%%%%%%%%%%%%%1:"+ev);
int action = ev.getAction();
switch (action) {
case MotionEvent.ACTION_DOWN:
goScroll = -1;
myEvent = ev;
touchX = (int) ev.getX();
touchY = (int) ev.getY();
isMove = false;
// return true;
break;
case MotionEvent.ACTION_MOVE:
myEvent2 = ev;
if(isMove)
return true;
absX = Math.abs((int) ev.getX() - touchX);
absY = Math.abs((int) ev.getY() - touchY);
if (absX > 10 || absY > 10) {
if (absX > absY) {
Log.i("sean", "%%%%%%%%%%%%%%%2:" + myEvent + "&&" + myEvent2);
if (touchX > ev.getX())
goScroll = 1;// right-lfet
else
goScroll = 2;// lfet-right
isMove = true;
}
}else{
return true;
}
break;
case MotionEvent.ACTION_UP:
Log.d("sean", "dispatchTouchEvent ACTION_UP");
break;
case MotionEvent.ACTION_CANCEL:
Log.d("sean", "dispatchTouchEvent ACTION_CANCEL");
break;
}
return super.dispatchTouchEvent(ev);
}
2)public boolean onInterceptTouchEvent(MotionEvent ev) 这个方法用来拦截TouchEvent从网上得到的心得,重写了Gallery控件,实现Gallery左右划动,ScrollView上下划动。目标是实现了,但是Gallery在左右划动时会左右乱跳哪位大哥知道指点下,很急啊,谢谢了!!!
http://download.csdn.net/detail/xq135816/5014553