您好我的应用程序就像Drum Studio一样。我需要支持一次触摸更多一个按钮。例如:用户触摸按钮1(并按住它!)它播放声音,但用户仍然按住它,用户单击另一个按钮,它也播放声音。如何编程?默认情况下onTouch或onClick使用,如果按下1个按钮,则在未释放按钮之前,其他按钮不会响应。
答案 0 :(得分:3)
使用onKeyDown()事件触发每个响应和onKeyUp()事件来完成它们。
http://developer.android.com/reference/android/view/KeyEvent.html
http://developer.android.com/reference/android/view/KeyEvent.Callback.html
对于触控,您可以使用OnTouchListener
http://developer.android.com/reference/android/view/View.OnTouchListener.html
并确定MotionEvent的触摸类型:
http://developer.android.com/reference/android/view/MotionEvent.html
澄清我的回答:要在按住一个按钮的同时发出声音,您可以在触发ACTION_DOWN
事件中的MotionEvent
操作时启动声音并使用ACTION_UP
停止播放同一事件的行动。
答案 1 :(得分:1)
即使您的设备支持多点触控,也无法同时触摸两个单独的视图。如果首先触摸Button1,则所有后续MotionEvent(包括具有单独指针ID的MotionEvent)都将绑定到该视图。
除非您使用像AndEngine这样内置此类功能的专用游戏引擎,否则您唯一的选择就是自己捕获所有MotionEvent(最容易使用覆盖整个屏幕的空ImageView)并将它们路由到基于屏幕坐标的适当视图。这可能会变得棘手,特别是对于多个触摸指针,但Android UI框架本身并不支持您需要的那种多点触控。
答案 2 :(得分:0)
您肯定希望使用Android 2.0或更高版本 - 以前的版本不支持多点触控。
检查onTouch中的pid - 0是单触,1是第二个。