imageViewがあり、次のように機能させたいです。
ImageViewerが表示されます
5秒間休止
見えない画像ビュー
5秒間休止
ImageViewerが表示されます
等々 ...
それ、どうやったら出来るの?スリープを試しましたが、プログラム全体が5秒でフリーズします。imageViewに影響を与えたいだけです。
でAlphaAnimationを使用ImageView
し、10 秒間でアルファ 100 から 0 になり、再び 100 に戻ります。次に、 INFINITEの繰り返し回数を使用します。ImageView
インターポレーターを使用すると、が表示または非表示になるときに非常に快適な効果を生み出すことができます。
私は Android プログラマーではありませんが、一般的なアドバイスとして、別のスレッドでスリープ、つまり待機を実行し、待機期間の終わりにメイン スレッドでメソッドを実行する必要があると思います。イメージビューの可視性を切り替えます。
より具体的な詳細に入ると、別のスレッドにいる間はほとんどの UI オブジェクトを更新できないため、Handler オブジェクトを使用する必要があると言えます。メッセージを Handler に送信すると、メッセージはキューに保存され、UI スレッドによってできるだけ早く実行されます。
public class MyActivity extends Activity {
// Handler needed for callbacks to the UI thread
final Handler mHandler = new Handler();
// Create runnable for posting
final Runnable mUpdateUIState = new Runnable() {
public void run() {
updateUIState();
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
[ . . . ]
}
protected void startToggle() {
// Fire off a thread to do the waiting
Thread t = new Thread() {
public void run() {
Thread.Sleep(5000);
mHandler.post(mUpdateUIState);
}
};
t.start();
}
private void updateUiState() {
// Back in the UI thread -- toggle imageview's visibility
imageview.setVisibility(1 - imageview.getVisibility());
}
}
または、短いバージョンのスニペット、
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
public void run() {
imageview.setVisibility(1 - imageview.getVisibility());
}
}, 5000);
postDelayed
メッセージ投稿ロジック内に遅延を組み込むメソッドを使用します。