タイトルはそれをすべて言います。無作為な可視性と不可視性の無限ループを見たいと思います。これは、私がそれに近づいた方法です: -プロセスを繰り返す:ランダムな時間のビューを表示し、ランダムな時間に見えないようにする
最初に、ランダム時間getRandomWaitTime()とgetRandomDisplayTime()を取得する2つのメソッドを作成しました。これらのメソッドはよく定義され、テストされ(ログで)、必要に応じて動作します。
fruit[0].postDelayed(new Runnable() {
@Override
public void run() {
fruit[0].setVisibility(View.VISIBLE);
fruit[0].postDelayed(new Runnable() {
@Override
public void run() {
fruit[0].setVisibility(View.INVISIBLE);
}
}, getRandomDisplayTime());
fruit[0].postDelayed(this, getRandomWaitTime());
}
}, getRandomWaitTime());
:これらの両方の方法は、今、私は[0]、最初にそれを設定するなど目に見えないし、次のコードが実行されることを次々ImageViewのフルーツを作成
getRandomWaitTime() : 3000-6000
getRandomDisplayTime() : 3000-5000
として、ミリ秒でintとしてランダムな値を返しますコードがコンパイルされ、同様に実行され、ImageViewは可視性と不可視性の無限のサイクルを経ます可視または不可視に設定されている時間は最小値3000msを持たないようです時々、 500ミリ秒後に見えなくなった。私は、View.postDelayedの代わりにHandler.postDelayedを使用するなどのようなものを試しましたが、これはうまくいかないようです。私は活動が始まり、3000
のような定数で、その後postDelayedメソッドからのすべてのgetRandomWaitTime()
とgetRandomDisplayTime()
方法を取り外して交換するとき
興味深いことが起こります。最初にフルーツ[0]は不可視に設定されています。 3000ms後、それは見えて来てはそこにとどまる。それ以降は何も起こりません。不可視に切り替えることはもうありません。私はそこにとどまります。
だから、これらの魔法の問題の原因は何でしょうか?
'fruit [0]'は 'View'のタイプですか? –
はい。それはImageViewの –
私の答えを参照してください、それはボタンでテストされています。 –