我在OntouchEvent中,现对action-up、action-down、action-mov的情况做了处理,然后加了return mGestureDetector.onTouchEvent(event).来实现手势识别。我用的是多点触屏。在action-up和action-down中对一个点进行处理,在longpress中对另一个点进行处理,结果是,当第一个点响应down时,第二个点无法响应,也就是后面的return中的函数没有执行。当第一点不响应down和move时,第二点可以执行。请问高手,如何解决。之所以要用前面的down和up是因为,其他手势中没有up。在线等,等到给分。

解决方案 »

  1.   

    当一个view 响应了 down 之后表示这个手势后续的操作都全部为被这个view的onTouchEvent(MotionEvent event) 捕获并处理。所以你在第一个view中 响应了down时间,第二个view就再无法接受这个手势的任何动作了。也就是说,你的两个点,不应该在同一个view之中,如果两个点都在同一个view之中,那么只能响应其中的一个,另一个是无法接受到这个消息的。
      

  2.   

    所以你在第一个view中 响应了down事件,第二个view就再无法接受这个手势的任何动作了。这句没有说清楚,我的意思是两个view属于包含的关系,假设view1 是一个linearlayout 而 view2 是一个放在linearlayout 中的textView ,那么view1 捕获了down动作,view2 就不能获得这个手势了。
      

  3.   

    那应该没有问题呀,你是用这种方式设置的吗?        ImageView imageView1 = new ImageView(this);
            imageView1.setOnTouchListener(new OnTouchListener() {

    @Override
    public boolean onTouch(View v, MotionEvent event) {
    // TODO Auto-generated method stub
    return false;
    }
    });
            imageView1.setOnLongClickListener(new OnLongClickListener() {

    @Override
    public boolean onLongClick(View v) {
    // TODO Auto-generated method stub
    return false;
    }
    });
            ImageView imageView2 = new ImageView(this);
            imageView2.setOnTouchListener(new OnTouchListener() {

    @Override
    public boolean onTouch(View v, MotionEvent event) {
    // TODO Auto-generated method stub
    return false;
    }
    });
            imageView2.setOnLongClickListener(new OnLongClickListener() {

    @Override
    public boolean onLongClick(View v) {
    // TODO Auto-generated method stub
    return false;
    }
    });
      

  4.   

    擦,你是要实现多点触屏响应呀。 那应该尽量在一个view中实现哟。http://wang-peng1.iteye.com/blog/629213
    http://wenku.baidu.com/view/3c82f5600b1c59eef8c7b4b7.html
      

  5.   


    就是实现这个帖子中的功能。。http://topic.csdn.net/u/20110324/22/d3c93c42-0b57-441d-a100-e3fbb92730b6.html?seed=953660256&r=74576848#r_74576848
      

  6.   


    android桌面的图标都在一个屏幕上,都不在同一个view中,可是滑动的时候图标之间可以变换位置,很奇怪??