Hinzufügen eines Begrüßungsbildschirms zu einem .NET MAUI-App-Projekt
Unter Android und iOS können .NET Multi-Platform App UI (.NET MAUI)-Apps einen Begrüßungsbildschirm anzeigen, während der Initialisierungsprozess abgeschlossen ist. Der Begrüßungsbildschirm wird sofort angezeigt, wenn eine App gestartet wird und Benutzern sofortiges Feedback gibt, während App-Ressourcen initialisiert werden:
Sobald die App bereit für Interaktionen ist, wird der Begrüßungsbildschirm geschlossen.
Wichtig
Auf iOS 16.4 und höher laden Simulatoren keinen Begrüßungsbildschirm, es sei denn, Ihre App ist signiert. Weitere Informationen, einschließlich einer Problemumgehung, finden Sie im GitHub-Issue 18479.
Auf Android 12+ (API 31+) zeigt der Begrüßungsbildschirm ein Symbol an, das auf dem Bildschirm zentriert ist. Weitere Informationen zu Begrüßungsbildschirmen unter Android 12+ finden Sie unter Begrüßungsbildschirme auf developer.android.com.
In einem .NET MAUI-App-Projekt kann ein Begrüßungsbildschirm an einem einzelnen Ort in Ihrem App-Projekt angegeben werden, und zur Buildzeit kann die Größe auf die richtige Auflösung für die Zielplattform geändert und dem App-Paket hinzugefügt werden. Dadurch wird vermieden, den Begrüßungsbildschirm auf Plattformbasis manuell duplizieren und benennen zu müssen. Standardmäßig werden Bitmapformate (nicht Vektorbildformate) nicht automatisch von .NET MAUI geändert.
Ein .NET MAUI-Begrüßungsbildschirm kann jedes der standardmäßigen Plattformbildformate verwenden, einschließlich SVG-Dateien (Scalable Vector Graphics).
Wichtig
.NET MAUI konvertiert SVG-Dateien in PNG-Dateien. Daher sollte beim Hinzufügen einer SVG-Datei zu Ihrem .NET MAUI-App-Projekt aus XAML oder C# mit einer PNG-Erweiterung verwiesen werden. Der einzige Verweis auf die SVG-Datei sollte sich in Ihrer Projektdatei befinden.
Ein Splash-Screen kann zu Ihrem App-Projekt hinzugefügt werden, indem Sie ein Bild in den Ordner Resources\Splash des Projekts ziehen, wo seine Build-Aktion automatisch auf MauiSplashScreen gesetzt wird. Dadurch wird ein entsprechender Eintrag in Ihrer Projektdatei erstellt:
<ItemGroup>
<MauiSplashScreen Include="Resources\Splash\splashscreen.svg" />
</ItemGroup>
Hinweis
Ein Begrüßungsbildschirm kann auch anderen Ordnern Ihres App-Projekts hinzugefügt werden. In diesem Szenario muss jedoch die Build-Aktion im Fenster Eigenschaften manuell auf MauiSplashScreen gesetzt werden.
Um die Regeln für die Benennung von Android-Ressourcen einzuhalten, müssen die Namen von Splash-Screen-Dateien klein geschrieben sein, mit einem Buchstaben beginnen und enden und dürfen nur alphanumerische Zeichen oder Unterstriche enthalten. Weitere Informationen finden Sie unter Übersicht über App-Ressourcen auf developer.android.com.
Bei der Erstellung wird das Bild des Startbildschirms auf die richtige Größe für die Zielplattform und das Zielgerät angepasst. Der in der Größe veränderte Splash-Screen wird dann zu Ihrem App-Paket hinzugefügt. Informationen zum Deaktivieren des Begrüßungsbildschirms finden Sie unter Begrüßungsbildschirm-Paketierung deaktivieren. Informationen zum Erzeugen eines leeren Begrüßungsbildschirms finden Sie unter Erzeugen eines leeren Begrüßungsbildschirms.
Festlegen der Basisgröße
.NET MAUI verwendet Ihren Begrüßungsbildschirm auf mehreren Plattformen und kann die Größe für jede Plattform ändern.
Die Basisgröße eines Begrüßungsbildschirmbilds stellt die Basisdichte des Bilds dar und ist effektiv der Skalierungsfaktor 1,0 für das Bild (die Größe, die Sie normalerweise in Ihrem Code verwenden würden, um die Größe des Begrüßungsbildschirms anzugeben), von der alle anderen Größen abgeleitet werden. Wenn Sie die Basisgröße für ein Bitmapbild nicht angeben, wird die Größe des Bilds nicht geändert. Wenn Sie keine Basisgröße für ein Vektorbild angeben, z. B. eine SVG-Datei, werden die im Bild angegebenen Dimensionen als Basisgröße verwendet.
Das folgende Diagramm zeigt, wie sich die Basisgröße auf ein Bild auswirkt:
Der Prozess ist im folgenden Diagramm dargestellt:
- A: Das Bild hat die Abmessungen 210x260, und die Basisgröße ist auf 424x520 eingestellt.
- B: .NET MAUI skaliert das Bild auf die Basisgröße von 424x520.
- C: Da für unterschiedliche Zielplattformen unterschiedliche Bildgrößen erforderlich sind, skaliert .NET MAUI das Bild von der Basisgröße auf unterschiedliche Größen.
Tipp
Verwenden Sie SVG-Bilder, sofern möglich. SVG-Bilder können auf größere Größen skalieren und trotzdem scharf und sauber aussehen. Bitmapbasierte Bilder, z. B. png- oder JPG-Bilder, sehen beim Hochskalieren verschwommen aus.
Die Basisgröße wird mit dem Attribut BaseSize="W,H"
angegeben, wobei W
die Breite des Bildes und H
die Höhe des Bildes ist. Im folgenden Beispiel wird die Basisgröße festgelegt:
<MauiSplashScreen Include="Resources\Splash\splashscreen.svg" BaseSize="128,128" />
Bei der Erstellung wird die Größe des Startbildschirms an die richtige Auflösung für die Zielplattform angepasst. Der resultierende Begrüßungsbildschirm wird dann ihrem App-Paket hinzugefügt.
Um die Größenänderung von Vektorbildern zu verhindern, setzen Sie das Attribut Resize
auf false
:
<MauiSplashScreen Include="Resources\Splash\splashscreen.svg" Resize="false" />
Hinzufügen von Farbton und Hintergrundfarbe
Um Ihrem Startbildschirm eine Tönung hinzuzufügen, was nützlich ist, wenn Sie ein einfaches Bild haben, das Sie in einer anderen Farbe als die Quelle darstellen möchten, setzen Sie das Attribut TintColor
:
<MauiSplashScreen Include="Resources\Splash\splashscreen.svg" TintColor="#66B3FF" />
Es kann auch eine Hintergrundfarbe für den Begrüßungsbildschirm angegeben werden:
<MauiSplashScreen Include="Resources\Splash\splashscreen.svg" Color="#512BD4" />
Farbwerte können als Hexadezimalzahl oder als .NET MAUI-Farbe angegeben werden. Beispielsweise ist Folgendes nicht zulässig: Color="Red"
.
Plattformspezifische Konfiguration
Unter Android wird der Begrüßungsbildschirm dem App-Paket als Resources/values/maui_colors.xml und Resources/drawable/maui_splash_image.xml hinzugefügt. .NET MAUI-Apps verwenden standardmäßig Maui.SplashTheme
, wodurch sichergestellt wird, dass ein Startbildschirm angezeigt wird, falls vorhanden. Daher sollten Sie in Ihrer Manifestdatei oder in Ihrer MainActivity
-Klasse kein anderes Thema angeben:
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
{
}
}
Für komplexere Begrüßungsbildschirmszenarien gelten plattformspezifische Ansätze.