ボタンを拡張するクラスがあります。
package dubpad.brendan;
import android.content.Context;
import android.media.AudioManager;
import android.media.SoundPool;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.widget.Button;
public class TestButton extends Button {.
SoundPool soundPool = new SoundPool(1, AudioManager.STREAM_MUSIC, 0);
int soundID = soundPool.load(getContext(), R.raw.bass, 0);
Sound sound = new Sound(soundPool, soundID);
int streamid;
public TestButton(final Context context, final AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
}
@Override
public boolean onTouchEvent(final MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN||event.getAction()==MotionEvent.ACTION_POINTER_DOWN||event.getAction()==MotionEvent.ACTION_POINTER_1_DOWN||event.getAction()==MotionEvent.ACTION_POINTER_2_DOWN||event.getAction()==MotionEvent.ACTION_POINTER_3_DOWN) {
streamid = sound.play(1);
}
if (event.getAction()==MotionEvent.ACTION_UP||event.getAction()==MotionEvent.ACTION_POINTER_UP||event.getAction()==MotionEvent.ACTION_POINTER_1_UP||event.getAction()==MotionEvent.ACTION_POINTER_2_UP||event.getAction()==MotionEvent.ACTION_POINTER_3_UP){
sound.stop(streamid);
}
return super.onTouchEvent(event);
}
}
ToggleButton を実装して、チェックされているかどうかを確認します。チェックされている場合はピッチを上げ、そうでない場合はピッチを下げます。ACTION_DOWN で ToggleButton オブジェクトを宣言してチェックしても機能しません。ボタンを拡張する他の多くのクラスがあります。streamID をキャッチしてピッチを変更するにはどうすればよいですか?