[解決済み】Flutterアプリにスプラッシュスクリーンを追加する
質問
Flutterアプリにスプラッシュスクリーンを追加するにはどうしたらよいでしょうか?他のコンテンツよりも先にロードして表示する必要があります。現在、Scaffold(home:X)ウィジェットがロードされる前に短い色のフラッシュが表示されます。
どのように解決するのですか?
FlutterでSplashスクリーンを作る実際の方法について、もう少し光を当ててみたいと思います。
を少し辿ってみました。 ここで で、FlutterのSplash Screenについては、それほど悪い状況にはなっていないことがわかりました。
たぶんほとんどの開発者(私のように)は、Flutterにはデフォルトでスプラッシュスクリーンがないので、それについて何かする必要があると考えているのでしょう。スプラッシュスクリーンはありますが、白背景で、iOSやAndroidにはすでにデフォルトでスプラッシュスクリーンがあることを誰も理解できていません。
開発者がやるべきことは、ブランディング画像を適切な場所に配置することだけで、スプラッシュスクリーンはそれだけで動き始めます。
ここでは、その方法を順を追って説明します。
まずAndroidで (私の好きなプラットフォームだからです :) )
-
Flutterプロジェクトで"android"フォルダを探します。
-
app -> src -> main -> res フォルダーを参照し、ブランディング画像のすべてのバリエーションを対応するフォルダーに配置します。例えば
- 密度1の画像はmipmap-mdpiに配置する必要があります。
- 密度1.5の画像は、mipmap-hdpiに配置する必要があります。
- 密度 2 の画像は mipmap-xhdpi に配置する必要があります。
- 濃度3の画像は、mipmap-xxhdpiに配置する必要があります。
- 濃度4の画像は、mipmap-xxxhdpiに配置する必要があります。
androidフォルダにはデフォルトでdrawable-mdpi、drawable-hdpiなどはありませんが、必要であれば作成することができます。その事実のため、画像はmipmapフォルダに配置する必要があります。また、(Androidの)スプラッシュ画面に関するデフォルトのXMLコードは、@drawableリソースの代わりに@mipmapを使うことになっています(必要なら変更可能です)。
-
Android での最後のステップは、drawable/launch_background.xml ファイル内の XML コードの一部をアンコメントすることです。app -> src -> main -> res-> drawable にアクセスし、launch_background.xml を開いてください。このファイルの中で、Slash画面の背景が白である理由を確認できます。ステップ2で配置したブランディング画像を適用するには、launch_background.xml ファイル内の XML コードの一部をアンコメントする必要があります。変更後は、以下のようになります。
<!--<item android:drawable="@android:color/white" />--> <item> <bitmap android:gravity="center" android:src="@mipmap/your_image_name" /> </item>
白背景のXMLコードをコメントし、ミップマップ画像に関するコードをアンコメントしていることに注意してください。もし興味があれば、launch_background.xml ファイルが styles.xml ファイルで使用されていることに注意してください。
iOSの2つ目。
-
Flutterプロジェクトで"ios"フォルダを探します。
-
Runner -> Assets.xcassets -> LaunchImage.imagesetをブラウズします。LaunchImage.png、[email protected] 等があるはずです。ここで、これらの画像をあなたのブランディング画像のバリアントと置き換える必要があります。たとえば、以下のようになります。
- 密度 1 の画像は LaunchImage.png をオーバーライドする必要があります。
- 密度2の画像は、[email protected] を上書きする必要があります。
- 密度3の画像は、[email protected] を上書きする必要があります。
- 密度4の画像は、[email protected] を上書きする必要があります。
間違っていなければ、[email protected] はデフォルトでは存在しませんが、簡単に作成することができます。[email protected] が存在しない場合、画像と同じディレクトリにある Contents.json ファイルでも宣言する必要があります。変更後、私のContents.jsonファイルは以下のようになります。
{
"images" : [
{
"idiom" : "universal",
"filename" : "LaunchImage.png",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "[email protected]",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "[email protected]",
"scale" : "3x"
},
{
"idiom" : "universal",
"filename" : "[email protected]",
"scale" : "4x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
これで、次回からAndroidやiOSでアプリを実行すると、追加したブランディング画像が表示された正しいスプラッシュスクリーンが表示されるはずです。
感謝
関連
-
[解決済み] Flutter - くねくね動くアニメーションを作るには?
-
[解決済み] FlutterでborderRadiusを使用してコンテナにボーダーを追加する
-
iOS アプリに Flutter を追加しようとすると、コマンド PhaseScriptExecution が 0 以外の終了コードで失敗します。
-
[解決済み] FlutterでListViewをColumnに追加する方法とは?
-
[解決済み] ヌル値に対して使用されるヌルチェック演算子
-
[解決済み] Flutterでウィジェットにボーダーを追加するには?
-
[解決済み】Flutterでアプリケーションランチャーのアイコンを変更するには?
-
[解決済み] フラッター エキスパンドとフレキシブル
-
[解決済み] 依存関係がヌルセーフティをサポートしていないため、サウンドヌルセーフティで実行できない
-
[解決済み] FlutterでAlertDialogを作るには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] FlutterでborderRadiusを使用してコンテナにボーダーを追加する
-
[解決済み] Dartは参照渡しになりますか?[重複あり]
-
Solve flutter Android ライセンスの状態が不明です。Android SDK Managerを再インストールまたはアップデートしてみてください。
-
[解決済み】Scaffold.of()がScaffoldを含まないコンテキストで呼び出された場合
-
[解決済み】FlutterでToastを作成する方法
-
[解決済み】再利用可能なウィジェットを作成するための関数とクラスの違いは何ですか?
-
[解決済み] appBarのバックボタンの色を変更する方法
-
[解決済み] Flutterでボタンの幅と高さを設定する方法は?
-
[解決済み] ListViewの最後までプログラム的にスクロールさせる
-
[解決済み] TextFieldの外や画面上の任意の場所をクリックした後、flutterのソフト入力キーボードを非表示にする方法は?