2012-08-09 77 views
2

如何在soundpool中進行多點觸摸?我有3個按鈕。當手指滑動觸摸按鈕時,就像鋼琴中的聲音一樣?這是我的代碼:soundpool中的多點觸摸

sp = new SoundPool (5, AudioManager.STREAM_MUSIC, 0); 
player1 = sp.load(this, R.raw.ndang, 1); 
player2 = sp.load(this, R.raw.nding, 1); 
player3 = sp.load(this, R.raw.ndung, 1); 

ndang = (ImageButton) this.findViewById(R.id.ndang); 
ndang.setOnClickListener(new OnClickListener() { 
    public void onClick(View arg0) { 
     // TODO Auto-generated method stub 
     sp.play(player1, 1, 1, 0, 0, 1); 
    } 
}); 

ndang = (ImageButton) this.findViewById(R.id.ndang2); 
ndang.setOnClickListener(new OnClickListener() { 
    public void onClick(View arg0) { 
     // TODO Auto-generated method stub 
     sp.play(player1, 1, 1, 0, 0, 1); 
    } 
}); 

nding = (ImageButton) this.findViewById(R.id.nding); 
nding.setOnClickListener(new OnClickListener() { 
    public void onClick(View arg0) { 
     // TODO Auto-generated method stub 
     sp.play(player2, 1, 1, 0, 0, 1); 
    } 
}); 
+0

我認爲你想看看是多點觸控觸摸。看看:http://www.passsy.de/multitouch-for-all-views/ – 0gravity 2012-08-09 04:11:05

+0

我把這段代碼和我的代碼結合起來。但是,當觸摸循環播放聲音的按鈕時,觸摸從按鈕1滑動到按鈕2時,只需播放按鈕1而不是simultan。你有沒有溶劑? – 2012-08-09 04:16:21

回答

1

您需要實現一個鋼琴View.OnTouchListener或者更好的是創建一個包含全鍵盤自定義視圖,並覆蓋onTouchEvent。這將使您能夠檢測多個鋼琴鍵和按鍵幻燈片,同時最小化代碼。

編輯:

public class PianoView extends View { 
    @Override 
    onTouchEvent(MotionEvent event) { 
     //your code to find which key was pressed based on x,y touch 
    } 
} 

public class PianoActivity extends Activity { 
    @Override 
    dispatchTouchEvent(MotionEvent event) { 
     //your code to find which key was pressed based on x,y touch 
    } 
} 
+0

我與View.OnTouchListener的變化,但沒有迴應,我仍然困惑使用onTouchEvent,你可以在我的代碼中實現該metode? – 2012-08-09 04:21:35

+0

感謝您的回答,我真的是一個初學者..但我會繼續努力.. – 2012-08-10 10:13:43