使用声音池的android多点触控

Posted

技术标签:

【中文标题】使用声音池的android多点触控【英文标题】:android multitouch using sound pool 【发布时间】:2014-03-07 16:25:33 【问题描述】:

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

此代码 onTouch ,但我需要多点触控

 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;
    

【问题讨论】:

您的代码在滑动同一根手指以触发其他按下时将不起作用。 MotionEvent.ACTION_DOWN 仅触发一次,当用户最初触摸屏幕时,会发送多个MotionEvent.ACTION_MOVE 事件,直到用户抬起接收到向下事件的同一根手指。只要您使用多指按下按钮并且您的设备支持,多点触控应该可以工作。 【参考方案1】:

更改return false;到 return true;

【讨论】:

以上是关于使用声音池的android多点触控的主要内容,如果未能解决你的问题,请参考以下文章

android想要利用多点触控放大或者缩小一个view该怎么实现

有啥方法可以在 Android Emulator 上测试多点触控吗?

Android LinearLayout 多点触控

Android实现多点触控,自由缩放图片

Android 在视图上禁用多点触控

Android多点触控技术,实现对图片的放大缩小平移,惯性滑动等功能