0

私はアンドロイドで楽器アプリを開発しようとしています。すべてのボタンにOnTouchListenerを実装しましたが、ボタンを1つタッチするだけでも問題ありません。しかし、ボタンに触れて指を次のボタンに移動すると、そのボタンのOnTouchListenerが呼び出されず、そのサウンドが再生されません。指を上に上げずにボタンを指でスライドさせているときに、どうすればサウンドを再生できますか?(私は多くの質問を読みましたが、それらは役に立ちません)

各ボタンの単純なOnTouchListener:

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;
        } 

 });
4

1 に答える 1

2

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;
}
于 2013-01-26T18:13:27.287 に答える