1

だから私は2つのボタンを持っていて、両方を同時に押したいと思っています。最初に押すと、「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 を取得する必要があります。助言がありますか?とにかく、私はまだピアノのサンプルプロジェクトを見つけていませんが、これがうまくいかないか、私のアプローチが完全に間違っている場合、それは間違いなく私を助けるでしょう. ありますか?

前もって感謝します!

4

1 に答える 1

0

public boolean onInterceptTouchEvent (MotionEvent ev)はあなたが探しているものだと思います。これを見てください

于 2012-12-05T12:48:48.693 に答える