1

次のコードで、指を接触から離したときに ACTION_UP イベントが発生しない理由がわかりません。

public boolean onTouch(View v, MotionEvent event) {
        switch(event.getActionIndex()){
        case MotionEvent.ACTION_UP:
            Utils.log("Touch Up");
            break;
        case MotionEvent.ACTION_DOWN:
            Utils.log("Touch Down");
            break;
        }
        return true;
    }
4

3 に答える 3

3

を使用する必要がありますgetActionMasked()

  • getAction()単一のポインター イベント (および非推奨の複数のポインター イベント...) を返します。
  • getActionMasked()単一および複数のポインター イベントを返します(with を使用しgetActionIndex()て、どのポインターを決定するかを決定します)。
  • getActionIndex()ポインター インデックスのみを返します。

したがってgetActionIndex()、ダウン/アップ アクションを実行した指 (0、1、2 など) を返します。getAction()または、必要な単一ポインター イベント ( 、など)を返します。getActionMasked()ACTION_DOWNACTION_UP

于 2012-12-25T05:05:10.993 に答える
2

あなたのコードを私のものに置き換えてください。

public boolean onTouch(View v, MotionEvent event) {
          //Here's the problem            
       switch(event.getAction()){
        case MotionEvent.ACTION_UP:
            Utils.log("Touch Up");
            break;
        case MotionEvent.ACTION_DOWN:
            Utils.log("Touch Down");
            break;
        }
        return true;
    }
于 2012-12-25T04:59:47.737 に答える