Hinzufügen eines App-Symbols zu einem .NET MAUI-App-Projekt
Jede App verfügt über ein Logosymbol, das es darstellt, und dieses Symbol wird in der Regel an mehreren Stellen angezeigt. Unter iOS wird das App-Symbol beispielsweise auf dem Startbildschirm und im gesamten System angezeigt, z. B. in den Einstellungen, bei den Benachrichtigungen, in den Suchergebnissen und im App Store. Unter Android wird das App-Symbol als Startsymbol und im gesamten System angezeigt, z. B. in der Aktionsleiste, bei den Benachrichtigungen und im Google Play Store. Unter Windows wird das App-Symbol in der App-Liste im Startmenü, in der Taskleiste, in der Kachel der App und im Microsoft Store angezeigt.
In einem .NET Multi-platform App UI (.NET MAUI) App-Projekt kann ein App-Symbol an einem einzigen Ort in Ihrem App-Projekt angegeben werden. Bei der Erstellung kann dieses Symbol automatisch auf die richtige Auflösung für die Zielplattform und das Zielgerät angepasst und zu Ihrem App-Paket hinzugefügt werden. Dadurch wird vermieden, dass das App-Symbol für jede Plattform manuell dupliziert und benannt werden muss. Standardmäßig werden Bitmap-Bildformate (Nicht-Vektorformate) von .NET MAUI nicht automatisch in der Größe angepasst.
Ein .NET MAUI-App-Symbol kann jedes der Standard-Bildformate der Plattform verwenden, einschließlich Scalable Vector Graphics (SVG)-Dateien.
Wichtig
.NET MAUI konvertiert SVG-Dateien in Portable Network Graphic (PNG)-Dateien. Wenn Sie also eine SVG-Datei zu Ihrem .NET MAUI-Anwendungsprojekt hinzufügen, sollte sie von XAML oder C# aus mit einer .png-Erweiterung referenziert werden. Die einzige Referenz auf die SVG-Datei sollte sich in Ihrer Projektdatei befinden.
Ändern des Symbols
In Ihrem .NET MAUI-Projekt bestimmt das Bild mit der MauiIcon-Buildaktion das Symbol, das für Ihre App verwendet werden soll. Dies wird in der Projektdatei als <MauiIcon>
-Element dargestellt. Möglicherweise ist nur ein Symbol für Ihre App definiert. Alle nachfolgenden <MauiIcon>
-Elemente werden ignoriert.
Das von Ihrer Anwendung definierte Symbol kann aus einem einzigen Bild bestehen, indem Sie die Datei als Attribut Include
angeben:
<ItemGroup>
<MauiIcon Include="Resources\AppIcon\appicon.svg" />
</ItemGroup>
Nur das erste <MauiIcon>
-Element, das in der Projektdatei definiert ist, wird von .NET MAUI verarbeitet. Wenn Sie eine andere Datei als Symbol verwenden möchten, löschen Sie zuerst das vorhandene Symbol aus Ihrem Projekt, und fügen Sie das neue Symbol dann hinzu, indem Sie es in den Ordner Resources\AppIcon des Projekts ziehen. Visual Studio legt die Buildaktion automatisch auf MauiIcon fest und erstellt ein entsprechendes <MauiIcon>
-Element in der Projektdatei.
Hinweis
Ein App-Symbol kann auch anderen Ordnern des App-Projekts hinzugefügt werden. In diesem Szenario muss die Buildaktion jedoch manuell im Fenster Eigenschaften auf MauiIcon festgelegt werden.
Um die Regeln für die Benennung von Android-Ressourcen einzuhalten, müssen die Dateinamen von App-Symbolen 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.
Nachdem Sie die Symboldatei geändert haben, müssen Sie möglicherweise das Projekt in Visual Studio bereinigen. Um das Projekt zu bereinigen, klicken Sie mit der rechten Maustaste auf die Projektdatei im Bereich Projektmappen-Explorer und wählen Sie Bereinigen. Möglicherweise müssen Sie die Anwendung auch von der Zielplattform deinstallieren, mit der Sie testen.
Achtung
Wenn Sie das Projekt nicht bereinigen und die Anwendung von der Zielplattform deinstallieren, sehen Sie Ihr neues Symbol möglicherweise nicht.
Nachdem Sie das Symbol geändert haben, überprüfen Sie die Plattformspezifischen Konfigurationsinformationen.
Zusammengesetztes Symbol
Alternativ kann das App-Symbol auch aus zwei Bildern bestehen, wobei ein Bild den Hintergrund und das andere den Vordergrund darstellt. Da Icons in PNG-Dateien umgewandelt werden, wird das zusammengesetzte App-Symbol zunächst mit dem Hintergrundbild überlagert, in der Regel ein Bild mit einem Muster oder einer Volltonfarbe, gefolgt von dem Vordergrundbild. In diesem Fall steht das Attribut Include
für das Hintergrundbild des Symbols und das Attribut Foreground
für das Bild im Vordergrund:
<ItemGroup>
<MauiIcon Include="Resources\AppIcon\appicon.svg" ForegroundFile="Resources\AppIcon\appiconfg.svg" />
</ItemGroup>
Unter Android kann optional ein ForegroundScale
-Attribut angegeben werden, um das Vordergrundbild so zu skalieren, dass es auf das App-Symbol passt. Weitere Informationen finden Sie unter Adaptiver Launcher.
Wichtig
Das Hintergrundbild (Attribut Include
) muss für den Eintrag <MauiIcon>
angegeben werden. Das Bild im Vordergrund (Attribut ForegroundFile
) ist optional.
Einstellen der Basisgröße
NET MAUI verwendet Ihr Symbol über mehrere Plattformen und Geräte hinweg und versucht, die Größe des Symbols für jede Plattform und jedes Gerät entsprechend anzupassen. Das App-Symbol wird auch für andere Zwecke verwendet, z. B. als Store-Eintrag für Ihre App oder als Symbol für die App, nachdem sie auf einem Gerät installiert wurde.
Die Basisgröße Ihres Symbols stellt die Basisdichte des Bildes dar und ist praktisch der Skalierungsfaktor 1,0, von dem alle anderen Größen abgeleitet werden. Wenn Sie keine Basisgröße für ein Bitmap-basiertes Anwendungssymbol (z. B. eine PNG-Datei) angeben, wird die Größe des Bildes nicht angepasst. Wenn Sie die Basisgröße für ein vektorbasiertes Anwendungssymbol, wie z. B. eine SVG-Datei, nicht angeben, werden die im Bild angegebenen Abmessungen als Basisgröße verwendet. Um zu verhindern, dass die Größe eines Vektorbildes geändert wird, setzen Sie das Attribut Resize
auf false
.
Die folgende Abbildung zeigt, wie sich die Basisgröße auf ein Bild auswirkt:
Der in der vorherigen Abbildung gezeigte Prozess folgt den folgenden Schritten:
- A: Das Bild wird als .NET MAUI-Symbol mit einer Größe von 210 x 260 hinzugefügt. Die Basisgröße ist 424 x 520.
- B: .NET MAUI skaliert das Bild automatisch entsprechend der Basisgröße von 424 x 520.
- C: Da für unterschiedliche Zielplattformen unterschiedliche Bildgrößen erforderlich sind, skaliert .NET MAUI das Bild automatisch von der Basisgröße auf unterschiedliche Größen.
Tipp
Verwenden Sie ein SVG-Bild als Symbol. SVG-Bilder können auf größere Größen skaliert werden und behalten dabei ihre Schärfe und Klarheit. 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
für die Breite des Symbols steht und H
für die Höhe des Symbols. Im folgenden Beispiel wird die Basisgröße festgelegt:
<ItemGroup>
<MauiIcon Include="Resources\AppIcon\appicon.png" BaseSize="128,128" />
</ItemGroup>
Im folgenden Beispiel wird die automatische Größenänderung eines vektorbasierten Bilds beendet:
<ItemGroup>
<MauiIcon Include="Resources\AppIcon\appicon.svg" Resize="false" />
</ItemGroup>
Neueinfärben des Hintergrunds
Wenn das beim Erstellen des App-Symbols verwendete Hintergrundbild transparent ist, kann es neu eingefärbt werden, indem Sie das Color
-Attribut im <MauiIcon>
angeben. Das folgende Beispiel setzt die Hintergrundfarbe des App-Symbols auf Rot:
<ItemGroup>
<MauiIcon Include="Resources\AppIcon\appicon.svg" Color="#FF0000" />
</ItemGroup>
Farbwerte können im hexadezimalen Format #RRGGBB
oder #AARRGGBB
angegeben werden. Der Wert RR
steht für den roten Kanal, GG
für den grünen Kanal, BB
für den blauen Kanal und AA
für den Alphakanal. Anstelle eines Hexadezimalwertes können Sie eine benannte .NET MAUI-Farbe wie Red
oder PaleVioletRed
verwenden.
Achtung
Wenn Sie keine Hintergrundfarbe für Ihr App-Symbol definieren, gilt der Hintergrund unter iOS und Mac Catalyst als transparent. Dies führt zu einem Fehler während der App Store Connect-Überprüfung, sodass Sie die App nicht hochladen können.
Neueinfärben des Vordergrunds
Wenn das App-Symbol aus einem Hintergrundbild (Include
) und einem Vordergrundbild (ForegroundFile
) besteht, kann das Vordergrundbild eingefärbt werden. Um das Vordergrundbild einzufärben, geben Sie eine Farbe mit dem Attribut TintColor
an. Im folgenden Beispiel wird das Vordergrundbild gelb gefärbt:
<ItemGroup>
<MauiIcon Include="Resources\AppIcon\appicon.png" ForegroundFile="Resources\AppIcon\appiconfg.svg" TintColor="Yellow" />
</ItemGroup>
Farbwerte können im hexadezimalen Format #RRGGBB
oder #AARRGGBB
angegeben werden. Der Wert RR
steht für den roten Kanal, GG
für den grünen Kanal, BB
für den blauen Kanal und AA
für den Alphakanal. Anstelle eines Hexadezimalwertes können Sie eine benannte .NET MAUI-Farbe wie Red
oder PaleVioletRed
verwenden.
Verwenden verschiedener Symbole je nach Plattform
Wenn Sie je nach Plattform unterschiedliche Symbolressourcen oder -einstellungen verwenden möchten, fügen Sie das Condition
-Attribut zum <MauiIcon>
-Element hinzu, und stellen Sie eine Abfrage für die jeweilige Plattform. Wenn die Bedingung erfüllt ist, wird das <MauiIcon>
-Element verarbeitet. Nur das erste gültige <MauiIcon>
-Element wird von .NET MAUI verwendet. Daher sollten alle bedingten Elemente zuerst deklariert werden, gefolgt von einem standardmäßigen <MauiIcon>
-Element ohne eine Bedingung. Der folgende XML-Code zeigt, wie ein bestimmtes Symbol für Windows und ein Fallbacksymbol für alle anderen Plattformen deklariert wird:
<ItemGroup>
<!-- App icon for Windows -->
<MauiIcon Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'windows'"
Include="Resources\AppIcon\backicon.png" ForegroundFile="Resources\AppIcon\appiconfg.svg" TintColor="#40FF00FF" />
<!-- App icon for all other platforms -->
<MauiIcon Include="Resources\AppIcon\appicon.png" ForegroundFile="Resources\AppIcon\appiconfg.svg" TintColor="Yellow" />
</ItemGroup>
Sie können die Zielplattform festlegen, indem Sie den in der Bedingung abgeglichenen Wert in einen der folgenden Werte ändern:
'ios'
'maccatalyst'
'android'
'windows'
Eine Bedingung, die Android festlegt, wäre beispielsweise Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'android'"
.
Plattformspezifische Konfiguration
Die Projektdatei deklariert zwar, aus welchen Ressourcen das App-Symbol besteht, Sie müssen aber die einzelnen Plattformkonfigurationen nach wie vor mit entsprechendem Verweis auf diese App-Symbole aktualisieren. Im Folgenden finden Sie eine Beschreibung dieser plattformspezifischen Einstellungen.
Das von Android verwendete Symbol wird im Android-Manifest unter Platforms\Android\AndroidManifest.xml angegeben. Der Knoten manifest/application
enthält zwei Attribute, um das Symbol zu definieren: android:icon
und android:roundIcon
. Die Werte dieser beiden Attribute folgen dem Format @mipmap/{name}
bzw. @mipmap/{name}_round
. Der Wert für {name}
wird vom <MauiIcon>
-Element der .NET MAUI-Projektdatei abgeleitet. Dies gilt insbesondere für den durch das Include
-Attribut definierten Dateinamen (ohne Pfad oder Erweiterung).
Sehen Sie sich das folgende Beispiel an, in dem die Ressource Resources\AppIcon\healthapp.png
als Symbol definiert wird:
<ItemGroup>
<MauiIcon Include="Resources\AppIcon\healthapp.png" ForegroundFile="Resources\AppIcon\appiconfg.svg" TintColor="Yellow" />
</ItemGroup>
Der umgewandelte Name, die Ressource ohne Pfad oder Erweiterung, lautet healthapp
. Die Werte für android:icon
und android:roundIcon
sind demzufolge @mipmap/healthapp
bzw. @mipmap/healthapp_round
. Das Android-Manifest sollte aktualisiert werden, damit es healthapp
als Symbol entspricht:
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<application android:allowBackup="true" android:icon="@mipmap/healthapp" android:roundIcon="@mipmap/healthapp_round" android:supportsRtl="true"></application>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
</manifest>
Tipp
Statt neue Bilddateien für das Symbol zu erstellen, ersetzen Sie einfach die beiden von der .NET MAUI-Vorlage bereitgestellten Bilddateien: Resources\AppIcon\appicon.svg für den Hintergrund und Resources\AppIcon\appiconfg.svg für den Vordergrund.
Adaptives Startfeld
.NET MAUI unterstützt das Erstellen eines adaptiven Startfeldsymbols unter Android 8.0 und höher über das App-Symbol. Adaptive Startfeldsymbole können mit verschiedenen Formen bei verschiedenen Gerätemodellen angezeigt werden, auch als Kreis und Quadrat. Weitere Informationen zu adaptiven Symbolen finden Sie im Android Developer Guide: Adaptive icons.
Adaptive Startfeldymbole sind zusammengesetzte Symbole mit einer Hintergrundebene, einer Vordergrundebene und einem optionalen Skalierungswert. Weitere Informationen finden Sie im Abschnitt Zusammengesetzes Symbol. Wenn das zusammengesetzte Symbol durch das ForegroundFile
-Attribut definiert ist, wird ein adaptives Startfeldsymbol generiert. Der folgende XML-Code zeigt, wie ein Symbol, das als adaptives Startfeldsymbol verwendet wird, definiert wird:
<ItemGroup>
<MauiIcon Include="Resources\AppIcon\appicon.svg" ForegroundFile="Resources\AppIcon\appiconfg.svg" ForegroundScale="0.65" Color="#512BD4" />
</ItemGroup>
Das ForegroundScale
-Attribut kann optional angegeben werden, um das Vordergrundbild so zu skalieren, dass es auf das App-Symbol passt. Es handelt sich um einen Prozentwert, sodass „0,65“ in „65 %“ übersetzt wird.