피아노 앱을 개발 중입니다. 최고는 아니지만 시작일뿐입니다.onTouchListener를 많이 사용하는 것이 맞습니까?
나는 아래의 코드를 사용하여 소리를 재생하고 터치 이벤트로 버튼의 이미지를 변경합니다.
C4.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch(event.getAction()) {
case MotionEvent.ACTION_DOWN:
// PRESSED
if (Sustain == "false") {
streamI25 = sp.play(SC4, Volume, Volume, 0, 0, 1);
C4.setBackgroundResource(R.drawable.whitekey1cilicked);
}
else {
sp.play(SC4, Volume, Volume, 0, 0, 1);
C4.setBackgroundResource(R.drawable.whitekey1cilicked);
}
// just in case somthings happend
final Handler handler2 = new Handler();
handler2.postDelayed(new Runnable() {
@Override
public void run() {
//Do something after 100ms
C4.setBackgroundResource(R.drawable.whitekey1);
}
}, keyUpTime);
return true; // if you want to handle the touch event
case MotionEvent.ACTION_UP:
// RELEASED
C4.setBackgroundResource(R.drawable.whitekey1);
final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
//Do something after 100ms
sp.pause(streamI25);
}
}, releaseTime);
return true; // if you want to handle the touch event
}
return false;
}
});
맞습니까? 피아노의 모든 단일 키에이 코드를 모두 쓰는 것이 바보가 아닌가요?
OnClick 메서드의 모든 단추에 대해 몇 줄의 코드 만 사용할 수 있지만 onTouch 이벤트가 필요합니다. 72 onTouchListener를 쓰는 것이 맞습니까?
나는 현명한 경험이 많은 사람이 아닙니다. 그러나 이런 방식으로하고 싶다면 개인적으로 피아노 키의 클래스를 만들고 객체로 키를 만들어 배열에 저장합니다. 그렇게하면 필요한 모든 것을 그들에게 줄 수 있고 많은 공간을 절약 할 수 있습니다. 이 정확한 방법을 선택하기 만하면됩니다. – Pixelknight1398