多点触控问题:当同时按下两个按钮时,它会检测到我用手指只碰了一个按钮,为什么?

时间:2012-12-05 11:47:46

标签: android button multi-touch

所以我有两个按钮,并希望同时按两个按钮。如果我按下第一个记录“C”(作为钢琴音符),另一个记录D。

到目前为止:

@Override
     public boolean onTouch(View v, MotionEvent event) {

        int action = event.getActionMasked();

        switch (event.getAction() & MotionEvent.ACTION_MASK){

        case MotionEvent.ACTION_DOWN:
             switch (v.getId()) { 
                case R.id.cnotebutton: 
                    Log.i("C", "C1");
                    return true;
                case R.id.c2notebutton: 
                      Log.i("D", "D1");
                      return true;
                default:
                }

                break;
            case MotionEvent.ACTION_UP:

                break;  
            case MotionEvent.ACTION_POINTER_DOWN:

                break;
            case MotionEvent.ACTION_POINTER_UP:

                switch (v.getId()) { 
                    case R.id.cnotebutton:
                        Log.i("C", "C2");
                        return true;
                    case R.id.c2notebutton: 
                          Log.i("D", "D2");
                          return true;
                    default:
                    }
                break;
            case MotionEvent.ACTION_MOVE:

                break;
            default:

        }
        return true;
    }

我记录C1和C2以区分这些情况,但每次按下按钮时我只得到C1,C2或D1,D2,好像我用我的两个手指触摸了相同的按钮。我应该得到C1,D2或D1,C2取决于哪个手指先指向。有什么建议? 无论如何我还没有找到一个钢琴样本项目,但如果这不起作用或者我的方法完全错误的话,这肯定会帮助我。有没有?

提前致谢!

1 个答案:

答案 0 :(得分:0)

我认为public boolean onInterceptTouchEvent (MotionEvent ev)正是您所寻找的。看看this.