Android 如何在移动按钮时检测事件?
我正在尝试用android开发一个乐器应用程序。我为每个按钮都实现了OnTouchListener,当我只按一个按钮时就没有问题了。但当我触摸一个按钮并将手指移动到下一个按钮时,该按钮的OnTouchListener不会被调用,其声音也不会播放。我如何在手指滑动按钮时播放声音而不抬起手指? (我读了很多问题,但都没用) 我的每个按钮的简单OnTouchListener:Android 如何在移动按钮时检测事件?,android,ontouchlistener,Android,Ontouchlistener,我正在尝试用android开发一个乐器应用程序。我为每个按钮都实现了OnTouchListener,当我只按一个按钮时就没有问题了。但当我触摸一个按钮并将手指移动到下一个按钮时,该按钮的OnTouchListener不会被调用,其声音也不会播放。我如何在手指滑动按钮时播放声音而不抬起手指? (我读了很多问题,但都没用) 我的每个按钮的简单OnTouchListener: final ImageButton img_1 = (ImageButton) findViewById(R.id.img_1
final ImageButton img_1 = (ImageButton) findViewById(R.id.img_1);
img_1.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if( event.getAction() == MotionEvent.ACTION_DOWN ) {
snd.play_s_l_1();
}
return true;
}
});
检查MotionEvent.MOVE:
private Rect rect; // Variable rect to hold the bounds of the view
public boolean onTouch(View v, MotionEvent event)
{
if(event.getAction() == MotionEvent.ACTION_DOWN)
{
// Construct a rect of the view's bounds
rect = new Rect(v.getLeft(), v.getTop(), v.getRight(), v.getBottom());
}
if(event.getAction() == MotionEvent.ACTION_MOVE)
{
if(!rect.contains((int)event.getX(), (int)event.getY()))
{
// User moved outside bounds
}
}
return false;
}