Android画面に定期的に白い長方形を表示したいと思います。または背景色を変更します。たとえば、500 ミリ秒ごとに画面の色を黒から白に変更し、約 200 ミリ秒かけてから黒に戻します。
これを行う最善の方法は何ですか?asynctask を試してみましたが、元のスレッドのみがビューにアクセスできるというエラーが発生しました。定期的なトーンを鳴らし、正常に動作する同様の asynctask があります。
解決:
レスポンダーの助けを借りて、黒用と白用の 2 つのタイマーを作成することで問題を解決しました。黒い画面は、白い画面を表示したい時間だけ遅れて始まります。どちらも同じ実行率であるため、白い画面が表示され、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));
}