你会如何向 Flutter 应用程序添加启动画面?它应该在任何其他内容之前加载和显示。目前,在 Scaffold(home:X) 小部件加载之前会有短暂的颜色闪烁。
我想进一步了解在 Flutter 中制作 Splash screen 的实际方式。
我在这里跟踪了一下,发现 Flutter 中的 Splash Screen 看起来并没有那么糟糕。
也许大多数开发者(比如我)都认为 Flutter 中默认没有启动画面,他们需要对此做点什么。有一个启动画面,但它是白色背景的,没有人能理解默认情况下已经有一个适用于 iOS 和 Android 的启动画面。
开发人员唯一需要做的就是将品牌形象放在正确的位置,启动画面就会像那样开始工作。
以下是您可以逐步完成的方法:
首先在 Android 上 (因为是我最喜欢的平台 :))
在 Flutter 项目中找到“android”文件夹。
浏览到 app -> src -> main -> res 文件夹,并将品牌形象的所有变体放在相应的文件夹中。例如:
密度为1的图像需要放在mipmap-mdpi中,
默认情况下,android 文件夹中没有 drawable-mdpi、drawable-hdpi 等,但我们可以根据需要创建它们。由于这个事实,图像需要放在 mipmap 文件夹中。此外,关于 Splash 屏幕(在 Android 中)的默认 XML 代码将使用 @mipmap,而不是 @drawable 资源(如果需要,您可以更改它)。
Android 的最后一步是取消注释 drawable/launch_background.xml 文件中的一些 XML 代码。浏览到 app -> src -> main -> res-> drawable 并打开 launch_background.xml。在这个文件中,你会看到为什么斜线屏幕背景是白色的。要应用我们在步骤 2 中放置的品牌形象,我们必须取消注释您的 launch_background.xml 文件中的一些 XML 代码。更改后,代码应如下所示:
<!--<item android:drawable="@android:color/white" />-->
<bitmap android:gravity="center" android:src="@mipmap/your_image_name" />
请注意我们注释了白色背景的 XML 代码并取消了关于 mipmap 图像的代码的注释。如果有人感兴趣,则可以在 styles.xml 文件中使用文件 launch_background.xml。
iOS 上的第二个:
在 Flutter 项目中找到“ios”文件夹。
浏览到 Runner -> Assets.xcassets -> LaunchImage.imageset。应该有 LaunchImage.png、LaunchImage@2x.png 等。现在您必须用您的品牌图像变体替换这些图像。例如:
密度为1的图像需要覆盖LaunchImage.png,
如果我没记错的话 LaunchImage@4x.png 默认是不存在的,但是你可以很容易地创建一个。如果 LaunchImage@4x.png 不存在,您还必须在 Contents.json 文件中声明它,该文件与图像位于同一目录中。更改后,我的 Contents.json 文件如下所示:
{ "images" : [ { "idiom" : "universal", "filename" : "LaunchImage.png", "scale" : "1x" }, { "idiom" : "universal", "filename" : "LaunchImage@2x.png", "scale" : "2x" }, { "idiom" : "universal", "filename" : "LaunchImage@3x.png", "scale" : "3x" }, { "idiom" : "universal", "filename" : "LaunchImage@4x.png", "scale" : "4x" } ], "info" : { "version" : 1, "author" : "xcode" } }
这应该就是你所需要的,下次当你在 Android 或 iOS 上运行你的应用程序时,你应该有正确的启动画面和你添加的品牌形象。
谢谢