Android API 26 unterstützt dies, aber haben wir eine Unterstützungsbibliothek, die die Verwendung von Schriftarten als Ressource in res bereitstellen kann? [ font in XML ] Wenn ja, bis zu welcher API wird es unterstützt?
Ich spreche von der Android O SDK-Funktion, mit der wir die Schriftart in XML festlegen können, wie im obigen Link angegeben. Ich bin mir sicher, dass dies keine native Funktion in MM ist.
Ich verwende diese Funktion in einer meiner Apps, die API 9 bis API 18 unterstützt. Soweit ich weiß, gibt es keine Einschränkung. Ich habe die Unterstützung von API 8 eingestellt, aber ich denke, es hätte auch damit funktioniert.
– Phantômaxx
12. Juni 2017 um 18:13 Uhr
Welche Bibliothek hast du zu Gradle hinzugefügt?
– sziraqui
12. Juni 2017 um 18:15 Uhr
KEINER. Es ist eine native Funktion. Übrigens braucht Eclipse das ganze “Gradle-Ding” nicht 😉
– Phantômaxx
12. Juni 2017 um 18:15 Uhr
Ich glaube, ich werde missverstanden. Ich spreche von der Funktion “Schriftart in XML”, die in O eingeführt wurde. Bearbeitete Frage zur Klärung
– sziraqui
12. Juni 2017 um 18:20 Uhr
with some little trick != eine native Funktion
– sziraqui
22. Juli 2017 um 20:21 Uhr
Yuri Misyac
Um die Schriftfamilie zu unterstützen API niedriger als 26, müssen wir verwenden
Ich hatte gehofft, dass ich dies in App-Widgets auf Android-Versionen vor 8 (API 26) verwenden könnte, aber es ist nicht möglich, da AppCompatTextView nicht in App-Widgets verwendet werden kann. Keine der Drittanbieter-Alternativen zu den „Fonts in XML“ von Android O wie z Kalligrafie Bibliothek funktioniert auch nicht in App-Widgets.
Die einzige Alternative für App-Widgets ist die Verwendung einer Bildansicht anstelle einer Textübersicht und verwenden RemoteViews Methoden wie z setImageViewUri(…) und setImageViewBitmap(…)beides problematisch.
Vielen Dank. Warum haben andere gesagt, dass es sich um eine native Funktion handelt? Ich verwende SDK Android Studio 2.3.2. Ich habe versucht, @font/arial.ttf zu verwenden. Es hat nicht funktioniert. Ich habe die Support-Bibliotheksversion 25.3.1 verwendet. Jetzt weiß ich, was falsch war.
– sziraqui
21. Juli 2017 um 9:37 Uhr
hat das funktioniert? Einige Leute sagen, dass Sie auf Android Studio 3 aktualisieren müssen, damit dies funktioniert.
– Benutzer1506104
20. Dezember 2017 um 12:50 Uhr
Danke für den Hinweis. Ich habe meine in geändert und es funktioniert jetzt.
– tmm1
9. Januar 2018 um 22:17 Uhr
Jemshit Iskenderov
Um die Antwort von Yuri zu vervollständigen, werden Schriftarten bis API 16 unterstützt. Um eine Schriftartfamilie zu erstellen (wo unterschiedliche Schriftstärken angegeben sind), sollten Sie erstellen my_font_family.xml unter /res/font/ wie geschrieben im doc:
Um dies zu verwenden TextView xml, sollten Sie verwenden app:fontFamily="@font/my_font_family"sei vorsichtig mit app: anstatt android:.
Konkret zu wählen fontWeightkönnen Sie verwenden android:textFontWeight="200" aber es funktioniert nur auf API>=28. Um eine andere Schriftart basierend auf dem Gewicht vor API 28 auszuwählen, haben Sie zwei Möglichkeiten. Sie können entweder verwenden android:textStyle="bold" um nur “normal/kursiv/fett” anzugeben, aber kein genaues Gewicht. Oder Sie können direkt eine bestimmte Schriftstärke wie folgt verwenden: app:fontFamily="@font/myfont_semi_bold".
Bitte beachten Sie: Wenn Sie eine benutzerdefinierte Textansicht verwenden, YourTextViewin Ihrer App muss es erweitert werden AppCompatTextView und nicht nur android.widget.TextView
Hast du versucht textFontWeight? Denn selbst auf API 28 funktioniert es bei mir nicht.
– Florian Walther
14. April 2019 um 18:02 Uhr
Bei mir funktioniert es nicht, ich laufe in einem Emulator. Ich verwende die Implementierung ‘androidx.appcompat:appcompat:1.0.2’ und das Design MaterialComponents
– Ganesh Chowdhary Sadanala
9. August 2019 um 14:07 Uhr
@GaneshChowdharySadanala Bitte überprüfen Sie die hinzugefügte Notiz, die Ihnen helfen könnte.
– JaydeepW
29. März 2020 um 6:30 Uhr
Die textStyle-Lösung funktioniert nicht auf Android 5 mit Support-Bibliothek
– AAverin
12. April 2021 um 14:34 Uhr
Einige Benutzer landen auf dieser Seite und suchen nach Anweisungen zur Verwendung benutzerdefinierter Schriftarten in Ihrer App aus XML. So habe ich es gemacht:
Das Font-Ressourcenverzeichnis ist standardmäßig nicht vorhanden. Sie können es manuell erstellen, indem Sie den Anweisungen folgen Dokumentation hier [too much work]
Oder verwenden Sie die Schriftartauswahl von GUI-
Wählen Sie auf der Registerkarte Design eine TextView aus.
Öffnen Sie das Drop-down-Menü von fontFamily xml-Attribut.
Scrollen Sie nach unten zu “Weitere Schriftarten”.
Wählen Sie im angezeigten Popup-Fenster eine „herunterladbare Schriftart“ aus.
Android Studio erstellt automatisch ein Font-Ressourcenverzeichnis mit den erforderlichen Deklarationen, die in der obigen Dokumentation erwähnt werden. Nach diesem Schritt können Sie Ihre benutzerdefinierte Schriftartdatei (z. B. myfont.ttf) in das Schriftartenverzeichnis kopieren und Ihre gewünschte Schriftart beispielsweise aus XML festlegen:
Dies könnte ein unerwünschter Weg sein, aber wenn Sie eine globale Schriftart (Schriftart) in XML haben, können Sie einfach eine Textansicht erstellen und die Schriftart von dort abrufen
TextView dummy = new TextView(context);
doSomethingWithTheTypeface(dummy.getTypeface());
Ist es möglich, ältere APIs einzubinden?
– rraallvv
24. Juni 2019 um 15:44 Uhr
14386300cookie-checkVerwenden von Schriftarten in XML in API < 26yes
Ich verwende diese Funktion in einer meiner Apps, die API 9 bis API 18 unterstützt. Soweit ich weiß, gibt es keine Einschränkung. Ich habe die Unterstützung von API 8 eingestellt, aber ich denke, es hätte auch damit funktioniert.
– Phantômaxx
12. Juni 2017 um 18:13 Uhr
Welche Bibliothek hast du zu Gradle hinzugefügt?
– sziraqui
12. Juni 2017 um 18:15 Uhr
KEINER. Es ist eine native Funktion. Übrigens braucht Eclipse das ganze “Gradle-Ding” nicht 😉
– Phantômaxx
12. Juni 2017 um 18:15 Uhr
Ich glaube, ich werde missverstanden. Ich spreche von der Funktion “Schriftart in XML”, die in O eingeführt wurde. Bearbeitete Frage zur Klärung
– sziraqui
12. Juni 2017 um 18:20 Uhr
with some little trick
!= eine native Funktion– sziraqui
22. Juli 2017 um 20:21 Uhr