重写gallery的onInterceptTouchEvent(MotionEvent event){},该方法若返回false将会上抛该事件到你的子view上面,如果返回true则事件不会上抛,将在 Gallery内部的OnTouchEvent() 接收做处理.如下:
class MyGallery extends Gallery{ private MotionEvent e; public MyGallery(Context context) { super(context); // TODO Auto-generated constructor stub } @Override public boolean onInterceptTouchEvent(MotionEvent ev) { // TODO Auto-generated method stub boolean bb=super.onInterceptTouchEvent(ev); if(ev.getAction()==MotionEvent.ACTION_DOWN){ e=MotionEvent.obtain(ev); super.onTouchEvent(ev); }else if(ev.getAction()==MotionEvent.ACTION_MOVE){ //手指触摸的大小.........这儿我设的是20像素 if(Math.abs(ev.getX()-e.getX())>20 || Math.abs(ev.getY()-e.getY())>20){ bb=true; } } return bb; } } 则,在adapter的内的子view可以setOnClickListener了,另外Gallery已经过时了 |