我已经研究了这个高的&低,无论在这里,还是一般的音调。不幸的是,我发现什么都没有适用,即使在'Button
类的droid java API上。Android java:按钮的颜色切换'行'@底部不能正确切换
在我的应用程序中,我有一个按钮用于切换AudioTrack
的播放。当该按钮手动切换时,按钮底部(但仍在其范围内)的水平栏会正确切换颜色。这在播放时是黑色的,在播放时是红色的,尽管我没有编写任何有关此功能的代码。
不幸的是,当按钮被经由代码从AudioTrack
收听者的匿名方法/函数内切换,不会发生此颜色变化。因此,按钮栏的颜色变化会随着每次播放完成而改变颜色变化行为。监听器的代码如下:
public void onMarkerReached(AudioTrack track) {
if (playing && !continuous) {
ouahful.stop();
btnTogglePlayback.setText(
getResources().getString(
R.string.text_off));
playing = !playing;
}
}
切换代码如下:
public void onTogglePlay(View view) throws MyException {
byte sounds[] = initSound(freq);
/* AudioTrack ouahful = new AudioTrack(AudioManager.STREAM_MUSIC,
sampleRate, AudioFormat.CHANNEL_OUT_MONO, AudioFormat.ENCODING_PCM_16BIT,
sounds.length, AudioTrack.MODE_STATIC); */
if (!playing) {
if (regen) {
sounds = initSound(freq);
}
ouahful = buildTrack(sounds);
ouahful.setNotificationMarkerPosition(numSamples);
setATListeners();
btnTogglePlayback.setText(getResources().getString(R.string.text_on));
ouahful.play();
} else {
btnTogglePlayback.setText(getResources().getString(R.string.text_off));
ouahful.stop(); //need to convert to save the track beyond this method
}
if ((freq != getResources().getInteger(R.integer.freq1)) &&
(freq != getResources().getInteger(R.integer.freq2)) &&
(freq != getResources().getInteger(R.integer.freq3))) {
rgrp.clearCheck();
}
btnSetManually.setEnabled(false);
playing = !playing;
}
我不认为任何其他代码片段都适用于这个问题。我很抱歉,如果我错了,请随时让我知道其他信息将有助于这个问题。
非常感谢任何解决此问题的信息和/或指针!这里