将初始屏幕添加到 .NET MAUI 应用项目
在Android和iOS上,.NET 多平台应用 UI (.NET MAUI) 应用可以在初始化过程完成时显示初始屏幕。 启动应用时立即显示初始屏幕,在初始化应用资源时立即向用户提供反馈:
应用准备好交互后,将消除其初始屏幕。
在 .NET MAUI 应用项目中,可以在应用项目中的单个位置指定初始屏幕,在生成时,它可以自动调整为目标平台和设备的正确分辨率,并将其添加到应用包中。 这样就无需手动复制并为每个平台命名初始屏幕。 默认情况下,位图 (非矢量) 图像格式不会由 .NET MAUI 自动调整大小。
.NET MAUI 初始屏幕可以使用任何标准平台图像格式,包括可缩放矢量图形 (SVG) 文件。
重要
.NET MAUI 将 SVG 文件转换为 PNG 文件。 因此,将 SVG 文件添加到 .NET MAUI 应用项目时,应从具有.png扩展名的 XAML 或 C# 引用该文件。
通过将图像拖入项目的 Resources\Images 文件夹,并将图像的生成操作设置为“属性”窗口中的 MauiSplashScreen,可以向应用项目添加初始屏幕。 这会在项目文件中创建相应的条目:
<ItemGroup>
<MauiSplashScreen Include="Resources\Images\splashscreen.svg" />
</ItemGroup>
若要符合Android资源命名规则,初始屏幕文件名必须为小写、以字母字符开头和结尾,并且仅包含字母数字字符或下划线。 有关详细信息,请参阅有关 developer.android.com 的应用资源概述 。
初始屏幕的基大小可以通过将 BaseSize
特性设置为 8 可分割的值来指定:
<MauiSplashScreen Include="Resources\Images\splashscreen.jpg" BaseSize="128,128" />
特性的值 BaseSize
表示初始屏幕的基线密度,并且实际上是派生所有其他密度大小的初始屏幕的 1.0 缩放因子。 此值将用于确保初始屏幕大小正确调整为不同的显示密度。 如果未为基于位图的初始屏幕指定大小 BaseSize
,则不会调整图像大小。 如果未为基于矢量的初始屏幕指定 BaseSize
值,则假定 SVG 中指定的尺寸为基大小。 若要停止重设矢量图像的大小,请将 Resize
属性设置为 false
:
<MauiSplashScreen Include="Resources\Images\splashscreen.svg" Resize="false" />
若要向初始屏幕添加色调,如果具有要以不同颜色呈现的简单图像,请设置 TintColor
属性:
<MauiSplashScreen Include="Resources\Images\splashscreen.svg" TintColor="#66B3FF" />
还可以指定初始屏幕的背景色:
<MauiSplashScreen Include="Resources\Images\splashscreen.svg" Color="#512BD4" />
可以在十六进制或 .NET MAUI 颜色中指定颜色值。 例如, Color="Red"
有效。
在生成时,可将初始屏幕的大小调整为目标平台和设备的正确分辨率。 然后将生成的初始屏幕添加到应用包。
在Android,初始屏幕将作为 Resourcs/values/maui_colors.xml 和 Resources/drawable/maui_splash_image.xml添加到应用包。 .NET MAUI 应用默认使用 Maui.SplashTheme
,这可确保显示初始屏幕(如果存在)。 因此,不应在清单文件或类中 MainActivity
指定其他主题:
using Android.App;
using Android.Content.PM;
namespace MyMauiApp
{
[Activity(Theme = "@style/Maui.SplashTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation | ConfigChanges.UiMode | ConfigChanges.ScreenLayout | ConfigChanges.SmallestScreenSize)]
public class MainActivity : MauiAppCompatActivity
{
}
}
对于更高级的初始屏幕方案,应用每个平台的方法。