

※Qiita/teratailにも同じ質問を投稿しております。

### 実現したいこと

JavaでAndroidスマホアプリを作っております。  
画面の特定領域（最下段に示したyellowArea）においてのみ、  
マルチタッチできる、コードの記述方法をご教示ください。

### 試したこと

下記ソースコードにて、マルチタッチ（Ｔ１→Ｔ２･･･）してみました。  
その結果、Ｔ１は、yellowAreaのみ受け付けてくれますが、  
それ以降のタッチ（Ｔ２・・・）は、yellowArea以外の領域でも  
受け付けられてしまいます。Ｔ２以降も、yellowAreaのみ受け付けて  
くれるように、検討を進めておりますが、  
なかなか解決に至らず。質問させて頂いた次第です。方向性だけでも  
ご教示頂ければ幸いです。

### ソースコード

[code]

    //MainActivityの基本コードは省略します。
    yellowArea.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            //マルチタッチのループ
            int count = event.getPointerCount();
            for (int j=0; j<count; j++) {
                int eventAction = event.getActionMasked();
                int pid = event.getPointerId(j);
                int id = event.findPointerIndex(pid);
    
                switch (eventAction) {
                    //最初のタッチ（T1）
                    case MotionEvent.ACTION_DOWN:
                        //処理内容は省略
                    break;
                    //追加タッチ（T2以降）
                    case MotionEvent.ACTION_POINTER_DOWN:
                        //処理内容は省略
                    break;
                    //その他のアクションは省略
                }
                //処理内容は省略
            } //マルチタップのループ
            return true;
        } //boolean onTouch
    }); //リスナー
    
[/code]

### スマホ画面（横置きの例）

[![スマホ画面（横置きの例）](https://i.stack.imgur.com/Y7HC0.png)](https://i.stack.imgur.com/Y7HC0.png)


CC BY-SA 4.0
2023-05-01T00:02:43.323
94696
2023-05-07T07:02:29.617
2023-05-07T07:02:29.617
3060
58119
question
java android
画面の特定領域においてのみマルチタッチできるようにしたい


自己解決しました。  
case MotionEvent.ACTION_POINTER_DOWN:  
の処理内で、追加タッチ座標がyellowArea外の場合は  
受け付けないようにする処理が必要だったようです。

参考サイト：  
<https://www.javatips.net/api/android.view.view.ontouchlistener>  
Example 83, Example 93

追伸：曖昧な質問で申し訳ありませんでした。


CC BY-SA 4.0
2023-05-07T02:56:24.087
94776
2023-05-07T02:56:24.087
58119
94696
answer