如何在不实际按下按钮的情况下突出显示按钮一段时间(例如1秒或2秒)?
答案 0 :(得分:1)
我假设你想在一段时间内设定焦点....
这是你如何做到的:
button01.setFocusableInTouchMode(true);
button01.requestFocus();
在某些htc手机中,这会将某些LG手机黄色的按钮突出显示为绿色。焦点颜色基本上是设备属性。
在此之后,您可以在适当的时间之后应用您的逻辑将焦点设置到其他对象,因此button01将失去焦点并再次成为正常的自我。
someOtherView.setFocusableInTouchMode(true)
someOtherView.RequestFocus();
答案 1 :(得分:1)
我找到了使其有效的解决方案。如果有人有兴趣创建一种卡拉OK,这是我的代码:
public void playKaraoke(final FlowLayout fl) {
//KARAOKE
mTts.setLanguage(Locale.FRENCH);
// Do something long
Runnable runnable = new Runnable() {
@Override
public void run() {
for (int i = 1;i<fl.getChildCount();++i) {
final Button btn = (Button) fl.getChildAt(i);
btn.setFocusableInTouchMode(true);
try {
Thread.sleep(800);
} catch (InterruptedException e) {
e.printStackTrace();
}
handler.post(new Runnable() {
@Override
public void run() {
//progress.setProgress(value);
btn.requestFocus();
mTts.speak((String) btn.getText(),
TextToSpeech.QUEUE_FLUSH, // Drop all pending entries in the playback queue.
null);
}
});
}
}
};
new Thread(runnable).start();
}