私は最高のアプローチではないかもしれませんが、アプリケーションではにかなり多くのレイアウトをロード/準備するためにonCreate
を使用していますので、アプリケーションの開始後には、したがって、さまざまな画面をスムーズかつ高速に変更できます。onCreateでスプラッシュスクリーンを表示する方法はありますか?
この方法の欠点は、最初のレイアウトが表示されるまでに5秒かかることです。正確には、ViewAnimator
のすべての画面はXMLレイアウトで定義されていて、onCreate
の間にそれらが膨張しています。
私のアプリケーションはスプラッシュスクリーンを持っている必要がありますので、私の質問は、これらの5秒を使って画像を表示する方法があればですか?
編集:私はこの単純な解決策を考え出したあなたの答えに
ありがとう:
Activity activity;
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main_splash);
activity = this;
LinearLayout splash_layout = (LinearLayout) this.findViewById(R.id.splash_layout);
// after 1 second of splash screen, start initializing everything
splash_layout.postDelayed(new Runnable()
{
public void run()
{
activity.setContentView(R.layout.main);
// Here init whole layout and all class
// During initialization, the splashscreen is still visible
}
}, 1000);
}
本当に間違いありません。私はこの答えに賛成して私の答えを削除しました。質問をした人がすべきことは、スプラッシュ画面を表示してから、プライマリレイアウトを表示するアクティビティを起動する新しいアクティビティを作成することです。このようにして、プライマリレイアウトが表示されるまでスプラッシュ画面が表示されます。 –
はい、これはこれまでの私にとって唯一の選択肢のようです。まず、これを実装するのは難しいように思えましたが、もし私がmain.xmlを1つだけ持っていれば、おそらく動作するはずです。私が見ているように、パラメータとしてviewを持つsetContentView()もあります。 –
それは動作します!簡単な解決策で質問を更新しました。ありがとうございました。 –