Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用声音池的android多点触摸_Android_Multi Touch_Soundpool - Fatal编程技术网

使用声音池的android多点触摸

使用声音池的android多点触摸,android,multi-touch,soundpool,Android,Multi Touch,Soundpool,我不知道如何正确使用onTouch。现在我可以按一个图像并播放声音,但我不能同时播放两个声音,也不能向下滑动手指播放所有声音,它只能播放第一个按下的图像。我知道这是因为onTouch和Multitouch,但我不知道如何做到这一点,我找不到任何相关的示例代码,任何帮助都非常感谢 这段代码是触控的,但我需要多点触控 public boolean onTouch(View v, MotionEvent event) { if (event.getAction() == Motio

我不知道如何正确使用onTouch。现在我可以按一个图像并播放声音,但我不能同时播放两个声音,也不能向下滑动手指播放所有声音,它只能播放第一个按下的图像。我知道这是因为onTouch和Multitouch,但我不知道如何做到这一点,我找不到任何相关的示例代码,任何帮助都非常感谢

这段代码是触控的,但我需要多点触控

 public boolean onTouch(View v, MotionEvent event) {

        if (event.getAction() == MotionEvent.ACTION_DOWN  ) {
             if(v.getId()==R.id.sagatup){

                if (loaded) {
                    soundPool.play(soundID, volume, volume, 1, 0, 1f);
                    Log.e("Test", "Played sound");
                }

             }
             if(v.getId()==R.id.sagatdown){

                if (loaded) {
                    soundPool.play(soundID2, volume, volume, 1, 0, 1f);
                    Log.e("Test", "Played sound");
                }
             }
             if(v.getId()==R.id.clap){

                // Is the sound loaded already?
                if (loaded) {
                    soundPool.play(soundID3, volume, volume, 1, 0, 1f);
                    Log.e("Test", "Played sound");
                }
             }
             if(v.getId()==R.id.za3rota){

                    // Is the sound loaded already?
                    if (loaded) {
                        soundPool2.play(soundID4, volume, volume, 1, 0, 1f);
                        Log.e("Test", "Played sound");
                    }
             }

        }

        return false;
    }

更改
返回false
;到
返回true

当滑动同一个手指以触发其他按压时,您的代码将不起作用
MotionEvent.ACTION\u DOWN
仅在用户最初触摸屏幕时触发一次,然后发送多个
MotionEvent.ACTION\u MOVE
事件,直到用户抬起接收DOWN事件的同一手指。只要您使用多个手指按下按钮,并且您的设备支持多点触摸,多点触摸就可以工作。