我想在android屏幕上定期显示一个白色矩形;或更改背景颜色。例如,每 500 毫秒,我希望屏幕颜色从黑色变为白色,持续大约 200 毫秒,然后变回黑色。
做这个的最好方式是什么?我确实尝试了异步任务,但得到一个错误,只有原始线程可以触摸视图。我有一个类似的 asynctask,它听起来周期性的音调并且工作正常。
解决方案:
在响应者的帮助下,我通过创建两个计时器来解决我的问题,一个用于黑色,一个用于白色。黑色的开始延迟了我想要显示白屏的持续时间。两者具有相同的执行率,因此显示白屏,持续时间ms 后显示黑屏。例如,屏幕为黑色,但每秒闪烁白色,持续 200 毫秒。
@Override
protected void onResume() {
super.onResume();
mBlackTimer = new Timer();
mBlackTimer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
runOnUiThread(new Runnable() {
@Override
public void run() {
view.setBackgroundColor(Color.parseColor("#000000"));
}
});
}
}, duration, (long) (1000 / visionPeriod));
mWhiteTimer = new Timer();
mWhiteTimer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
runOnUiThread(new Runnable() {
@Override
public void run() {
view.setBackgroundColor(Color.parseColor("#ffffff"));
}
});
}
}, 0, (long) (1000 / visionPeriod));
}