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.

War es hilfreich?

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ützung

Es ist eine Android-Bibliothek macht es einfach, benutzerdefinierte Schriftarten verwendet werden.

https://github.com/svendvd/Fontinator

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top