Verwenden Sie externe Schriftarten in Android
-
07-07-2019 - |
Frage
Ich mag externe Schriftarten in meiner App verwenden. Ich habe versucht, neue fonts
Zugabe AssetManager
verwenden, aber es hat nicht funktioniert. Unten ist mein Code:
Typeface face;
face = Typeface.createFromAsset(getAssets(), "font.otf");
textview.setTypeface(face);
aber es ist nicht der Text zeigt ...
Bitte helfen Sie mir mit diesem.
Lösung
AFAIK, Android nicht Opentype unterstützen. Verwenden Sie eine Truetype-Schriftart statt.
UPDATE: Scheinbar Opentype wird nun unterstützt, zumindest etwas. Es war ursprünglich nicht unterstützt, so dass Sie Ihre Schrift gründlich auf Ihre App unterstützt, was auch immer Android-Versionen testen wollen.
Andere Tipps
Um unsere Schrift leicht zugreifen zu können, müssen wir sie mit unserer Anwendung in einer Art und Weise bündeln, die unser Code, um es anschließend zu laden. Dazu erstellen wir einen Ordner Schriftart in unseren Assets direkt
Dies kann Ihre .xml
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:id="@+id/DefaultFontText"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="30sp"
android:text="Here is some text." />
<TextView
android:id="@+id/CustomFontText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="30sp"
android:text="Here is some text.">
</TextView>
Schreiben folgenden Code in Ihrer .java Klasse
Typeface tf = Typeface.createFromAsset(getAssets(),
"fonts/BPreplay.otf");
TextView tv = (TextView) findViewById(R.id.CustomFontText);
tv.setTypeface(tf);
Android funktioniert Unterstützung OTF (I aus, die SDK-Version bin nicht sicher, aber es funktioniert auf jeden Fall mit 1.6), war ich eine Zeit lang eine Schreibmaschine OTF Schriftart verwenden, aber die Wiedergabe ist bei weitem nicht so genau wie mit der TTF-Version I ended up mit (via Online-font-Wandler). Die Basislinie war ganz über den Platz (einige Buchstaben waren ein volles 2 Pixel höher als andere), und auf LDPI Handys wie das HTC Wildfire ist das Problem stark aufgrund des größeren Pixel vergrößert.
Ich habe das gleiche Problem. Meine Schrift war nicht funktioniert entweder in android aber ich brauchte es zu arbeiten. Mit Hilfe eines Font-Editor, kopiert ich die Zeichen aus meiner Schrift in die Schriftart, die von Android-src-2_1 mit dem FontSampler Beispiel kommt. Es funktionierte perfekt.
Während ich zugeben, dass meine Methode aus einer geistigen Eigentum Sicht fragwürdig war, habe ich nicht wirklich aufzuwickeln die ursprüngliche Schriftart verwenden, da alle Zeichen ersetzt wurden und alle Verweise auf die alte Schrift, wo auch ersetzt . Ich hatte ‚suchen‘ versucht, auf die Art und Weise die beiden Schriftarten definiert wurden, aber machen all die Schriftgrößen Spiel nicht funktioniert entweder. So in der ned, habe ich ein Skelett der ursprünglichen Schriftart als Vorlage für die neue Schriftart.
Android unterstützt sowohl otf und ttf-Formate, ich beide erlebt.
tv3 = (TextView)findViewById(R.id.tv1);
Typeface typeFace = Typeface.createFromAsset(getAssets(), "fonts/TRAJANPRO-BOLD.OTF");
tv3.setTypeface(typeFace);
Dies ist der Schritt i für beide Englisch und lokale Sprachen verwendet
Mit Fontinator es Stand OTF und TTF Schriftarten
UnterstützungEs ist eine Android-Bibliothek macht es einfach, benutzerdefinierte Schriftarten verwendet werden.