Android アプリケーションの読み込み中に、起動の最初の 2,3 秒間にロゴを表示したいのですが、起動後に UI を表示するよりも見苦しくないと思います。したがって、私のコードでは、最初にロゴ付きの setContentView (スプラッシュ) を作成し、その後に UI (メイン) 付きの setContentView を作成します。pb では、ロゴ画面が表示されず、黒い画面が表示されます。私はそれをメインスレッドで行っているので、理解できません。問題の説明と、可能であれば回避策はありますか?
アクティビティの onCreate() がうまく機能しないのは次のとおりです (5 秒間黒い画面が表示された後、UI が表示されますが、例外はスローされません)。
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.splash); //doesn't work
Log.i(TAG, Thread.currentThread().getName());
//this.r
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
Log.i(TAG, Thread.currentThread().getName() + e.toString() );
}
setContentView(R.layout.main); //work OK
}
}
以下のコードを使用してクラスを離れた場合、問題はありません。「最初の」唯一のビューが表示されます。
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.splash); //work OK
} }