我正在为儿童制作叙事应用程序,每个单词都会突出显示并发布。有些词需要更长的时间来发音,所以我需要让它们突出显示一段时间。
play = (ImageButton)findViewById(R.id.play);
TextView grandmom = (TextView)findViewbyId(R.id.grandmom) ;
play.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if(MotionEvent.ACTION_DOWN == event.getAction()){
grandmom.setBackgroundColor(Color.YELLOW);
return true;
}
}
});
上面的代码只是突出显示单词,永远保持黄色。如何点亮几毫秒然后恢复正常?
答案 0 :(得分:4)
您可以使用AsyncTask
播放声音。
在onPreExecute()
中将背景更改为黄色,并在onPostExecute()
这样你就不必担心播放声音所需的时间。
答案 1 :(得分:2)
在OnPreparedListener
上的OnCompletionListener
突出显示上使用听众,并在LVM_SETCOLUMNWIDTH
上恢复正常
答案 2 :(得分:1)
使用TimerTask
,安排它以便在几个毫秒后执行它并在该任务内部经过一段时间后,再将backGrounColor更改为原始
您还可以创建一个函数,告诉您根据字符串的长度保持突出显示的时间长度,并使用该函数确定何时调度关闭突出显示的任务