使用声音池的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该怎么实现