Androidアプリを起動すると、メインアクティビティは白の背景と黒のヘッダーで始まり、左隅にアプリ名が表示されます。このように
これを完全に削除し(アプリが起動されてこれが表示されない場合)、カスタムの読み込みプログレスバーまたはロゴを画面に追加するにはどうすればよいですか?
Androidアプリを起動すると、メインアクティビティは白の背景と黒のヘッダーで始まり、左隅にアプリ名が表示されます。このように
これを完全に削除し(アプリが起動されてこれが表示されない場合)、カスタムの読み込みプログレスバーまたはロゴを画面に追加するにはどうすればよいですか?
プログレスバーを含むカスタムレイアウトでスプラッシュダイアログを作成するのはどうですか?
あなたの主な活動では、このようなことをしてください
private SplashDialog mSplashDialog;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
showSplashScreen();
setContentView(R.layout.yourmainlayout);
}
protected void removeSplashScreen() {
if (mSplashDialog != null) {
mSplashDialog.dismiss();
mSplashDialog = null;
}
}
protected void showSplashScreen() {
mSplashDialog = new SplashDialog(this, R.style.splash_dialog);
mSplashDialog.setCancelable(false);
mSplashDialog.show();
}
カスタムダイアログを作成する
public class SplashDialog extends Dialog {
private ProgressBar mProgressBar;
public SplashDialog(Context context, int theme) {
super(context, theme);
setContentView(R.layout.splash_dialog);
mProgressBar = (ProgressBar) findViewById(R.id.splash_progress);
}
public void setProgress(int progress) {
mProgressBar.setProgress(progress);
}
}
そしてそれにスタイルを追加すると、ダイアログがすべての画面に表示されます。
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="splash_dialog">
<item name="android:padding">0dp</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowFrame">@null</item>
</style>
</resources>
ダイアログの進行値を変更するには、を呼び出しますmSplashDialog.setProgress(int progress)
。
データが読み込まれたら、を呼び出しますremoveSplashScreen()
。
私はあなたが探しているものがここにあると思います:
私にとってうまくいったのは(開始時にあまり負荷がかからないため、実際にはスプラッシュ画面はまったく必要ありませんでした)、res / values / styles.xmlを変更することです:
<resources>
<color name="custom_theme_color">#000000</color>
<style name="AppTheme" parent="android:Theme.Light" >
<item name="android:windowNoTitle">true</item>
<item name="android:windowBackground">@color/custom_theme_color</item>
</style>
</resources>
それはちょうどそれがすべてロードされたときに黒い画面の魔女が全画面表示(1〜2秒後)になることから始まります。それは非常に「プロフェッショナル」に見えます。