将两个图像按钮的可见性设置在另一个上面时,我遇到了问题。想法是实现播放/暂停控制。问题是设置可见性实际工作的唯一部分是按钮的单击侦听器。如果我试图在其他地方改变它没有任何反应。知道为什么会这样吗?
playBtn.setOnClickListener(new OnClickListener() {//PLAY BUTTON LISTENER
public void onClick(View v) {
playBtn.setVisibility(ImageButton.GONE);
pauseBtn.setVisibility(ImageButton.VISIBLE);
mp.start();
}});
pauseBtn.setOnClickListener(new OnClickListener() {//PAUSE BUTTON LISTENER
public void onClick(View v) {
pauseBtn.setVisibility(ImageButton.GONE);
playBtn.setVisibility(ImageButton.VISIBLE);
mp.pause();
}});
final class SeekBarTask extends TimerTask {
public SeekBarTask(int duration) {
}
@Override
public void run() {
if(seekBar.getProgress() >= mp.getDuration()) {//IF SONG HAS FINISHED...
pauseBtn.setVisibility(ImageButton.GONE);//THESE ONES
playBtn.setVisibility(ImageButton.VISIBLE);//DOESN'T WORK
mp.stop();
}
else {
seekBar.incrementProgressBy(100);
}
}
}
答案 0 :(得分:1)
我建议只更改一个ImageButton
的图标。
答案 1 :(得分:0)
我认为只有两件事中的一件可能发生。这个代码永远不会被命中,或者变量不是指你期望它们的相同对象实例。你在那个条件下放了一个断点吗?我会检查断点是否会在那里被击中,然后检查变量是否指向正确的按钮实例。
在没有看到其余代码的情况下,我不得不问......为什么你要在进度条上检查“完成播放”状态而不是在完成回调时使用媒体播放器?
我正在做一些非常相似的事情,我使用MediaPlayer的OnCompletionListener来翻转我的按钮的可见性。
答案 2 :(得分:0)
我不记得Android GUI操作的细节,但它是否必须这样做,你是从另一个线程做的,而你不应该这样做?
答案 3 :(得分:0)
我注意到,当您为其设置动画时,将ImageButton设置为View.INVISIBLE不起作用。你必须删除动画然后使其不可见。我认为这是一个糟糕的陷阱......