XAMARIN: cross-Plattform FontFamily
Muss ich angeben, verschiedene FontFamily für verschiedene Labels in meiner app. Ich muss verwenden Sie die Standard-Schriftarten (z.B. Roboto für Android und Helvetica für iOS) mit Ihren änderungen (z.B. Light, Medium, Bold). Soweit ich das verstanden habe sollte ich mit Roboto-Light und Helvetica-Licht, um die Light-version der Schriften (gleich für Medium und Bold).
Zusätzlich zu dieser Bedingung muss ich zum einstellen der Schriftarten in XAML (wie beschrieben in der Dokumentation) so Ende ich mit diesem code
<StackLayout BackgroundColor="#F8F8F8" Padding="0, 20, 0, 0">
<Label Text="Black" TextColor="#000000" >
<Label.FontSize>
<OnPlatform x:TypeArguments="x:Double"
iOS="17"
Android="16"
WinPhone="16" />
</Label.FontSize>
<Label.FontFamily>
<OnPlatform x:TypeArguments="x:String">
<OnPlatform.iOS>Helvetica-Black</OnPlatform.iOS>
<OnPlatform.Android>Roboto-Black</OnPlatform.Android>
<OnPlatform.WinPhone></OnPlatform.WinPhone>
</OnPlatform>
</Label.FontFamily>
</Label>
<Label Text="Light" TextColor="#000000">
<Label.FontSize>
<OnPlatform x:TypeArguments="x:Double"
iOS="17"
Android="16"
WinPhone="16" />
</Label.FontSize>
<Label.FontFamily>
<OnPlatform x:TypeArguments="x:String">
<OnPlatform.iOS>Helvetica-Light</OnPlatform.iOS>
<OnPlatform.Android>Roboto-Light</OnPlatform.Android>
<OnPlatform.WinPhone></OnPlatform.WinPhone>
</OnPlatform>
</Label.FontFamily>
</Label>
<Label Text="Medium" TextColor="#000000" >
<Label.FontSize>
<OnPlatform x:TypeArguments="x:Double"
iOS="17"
Android="16"
WinPhone="16" />
</Label.FontSize>
<Label.FontFamily>
<OnPlatform x:TypeArguments="x:String">
<OnPlatform.iOS>Helvetica-Medium</OnPlatform.iOS>
<OnPlatform.Android>Roboto-Medium</OnPlatform.Android>
<OnPlatform.WinPhone></OnPlatform.WinPhone>
</OnPlatform>
</Label.FontFamily>
</Label>
<Label Text="Bold" TextColor="#000000">
<Label.FontSize>
<OnPlatform x:TypeArguments="x:Double"
iOS="17"
Android="16"
WinPhone="16" />
</Label.FontSize>
<Label.FontFamily>
<OnPlatform x:TypeArguments="x:String">
<OnPlatform.iOS>Helvetica-Bold</OnPlatform.iOS>
<OnPlatform.Android>Roboto-Bold</OnPlatform.Android>
<OnPlatform.WinPhone></OnPlatform.WinPhone>
</OnPlatform>
</Label.FontFamily>
</Label>
Jedoch, das Ergebnis in Android ist unerwartet. Die FontFamily der verschiedenen Labels ist nicht geändert. Sie sehen alle gleich aus.
Den gleichen code in iOS funktioniert wie erwartet
Meine Frage ist: Wie bekommt man die Roboto-Light, Roboto-Medium und Roboto-Bold Schriften in meine Android-app, wenn folgende XAMARIN-Dokumentation nicht arbeiten?
InformationsquelleAutor Pavel Pavlov | 2015-09-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Update:
Ich konnte nicht sehen, dass Sie wurden mit API-18 /4.3 das erste mal (in der Titelzeile Ihres emulators), dachte, Sie waren laden Sie Sie als benutzerdefinierte Vermögenswerte, die für ältere android-Versionen. Seit roboto ist die Standard-schriftart seit 4.1 verwenden, können Sie Sie als:
Original:
https://developer.xamarin.com/guides/cross-platform/xamarin-forms/working-with/fonts/
die erste Antwort here außerdem bestätigt diese Aussage.
Den link den du oben gepostet gibt nun an, dass benutzerdefinierte Schriftarten sind jetzt verfügbar auf Android. Allerdings bin ich mir nicht zu sehen, meine eigene schriftart verwendet wird, die auf Android-trotz der Schritte in dem Artikel. Wissen Sie, ob Sie benutzerdefinierte Schriftarten sind in der Tat noch unter Android nicht unterstützt?
Xamarin.Formen hat nun in der Tat Unterstützung für benutzerdefinierte Schriftarten auf Android, die schriftart, die Namensgebung ist entscheidend: developer.xamarin.com/guides/xamarin-forms/user-interface/text/...
danke. Ich habe realisiert, dass nach Anleitung, aber es ist nicht Kommissionierung bis die custom-Schriftarten. Wie Sie sagen, die Benennung der Schrift (nicht die TTF-Datei) ist von entscheidender Bedeutung. Es gibt eine Diskrepanz irgendwo, die ich brauche, um auf den Grund.
InformationsquelleAutor SushiHangover
Habe ich überschreiben der Standard-Renderer für alle Ansichten, die ich brauchte.
Diese Weise können Sie XAML-code wie Sie soll:
Hier ist ein Beispiel für das Label.
Natürlich müssen Sie auf Karte, um den Speicherort, in dem Sie eingebettet ist die benutzerdefinierte schriftart. In meinem Fall Assets/Fonts/Arial.otf.
InformationsquelleAutor Florian
Bitte verwenden Sie folgende Rendern, laden benutzerdefinierte schriftart im label, stellen Sie bitte sicher, dass Sie Ihre font-Datei in den fonts-Ordner im assets-Ordner des android-Projekts zu definieren ähnlichen Pfad für alle Plattform -
xaml-Code des label-Steuerelements, stellen Sie bitte sicher, dass die schriftart-Datei ist erhältlich in den Schriftarten-Ordner
InformationsquelleAutor Ashish Patel
Ab 2018, in Xamairn.Formen, es gibt keine Notwendigkeit in der Plattform-Renderer. Die Schritte sind:
Hier die detaillierte Beschreibung Informationen zum hinzufügen und anwenden von benutzerdefinierten Schriftarten in macOS, WPF und Android.
InformationsquelleAutor Maxim Saplin