Использование внешних шрифтов в Android


Я хочу использовать внешние шрифты в моем приложении. Я пробовал добавлять новые fonts С помощью AssetManager но это не сработало. Ниже приведен мой код:

Typeface face;

face = Typeface.createFromAsset(getAssets(), "font.otf");

textview.setTypeface(face);

но его не показывает текст...

пожалуйста, помогите мне с этим.

6 58

6 ответов:

AFAIK, Android не поддерживает OpenType. Вместо этого используйте шрифт TrueType.


обновление: по-видимому, OpenType теперь поддерживается, по крайней мере, несколько. Изначально он не поддерживался, поэтому вы захотите тщательно протестировать свой шрифт на любых версиях Android, которые будет поддерживать ваше приложение.

чтобы легко получить доступ к нашему шрифту, нам нужно связать его с нашим приложением таким образом, чтобы наш код мог впоследствии загрузить его. Для этого мы создаем папку Fonts в наших активах direct

Это может быть вашим .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>

пишем следующий код в ваш .класс java

Typeface tf = Typeface.createFromAsset(getAssets(),
            "fonts/BPreplay.otf");
    TextView tv = (TextView) findViewById(R.id.CustomFontText);
    tv.setTypeface(tf);

Android поддерживает OTF (я не уверен, из какой версии SDK, но она определенно работает с 1.6), я некоторое время использовал шрифт OTF для пишущей машинки, но рендеринг нигде не так точен, как с версией TTF, которую я использовал (через онлайн-конвертер шрифтов). Базовая линия была повсюду (некоторые буквы были на целых 2 пикселя выше, чем другие), а на телефонах LDPI, таких как HTC Wildfire, проблема значительно увеличивается из-за больших пикселей.

У меня была та же проблема. Мой шрифт тоже не работал в android, но мне нужно было, чтобы он работал. Используя редактор шрифтов, я скопировал символы из моего шрифта в шрифт, который поставляется с примером FontSampler из Android-src-2_1. Это сработало отлично.

хотя я признаю, что мой метод был сомнительным с точки зрения интеллектуальной собственности, я на самом деле не использовал оригинальный шрифт, так как все символы были заменены и все ссылки на старый шрифт, в котором заменены. Я попытался "посмотреть" на то, как были определены эти два шрифта, но сделать все переменные шрифта совпадающими тоже не сработало. Поэтому в ned я использовал скелет исходного шрифта в качестве шаблона для нового шрифта.

android поддерживает оба формата otf и ttf, я испытал их обоих.

tv3 = (TextView)findViewById(R.id.tv1);
    Typeface typeFace = Typeface.createFromAsset(getAssets(), "fonts/TRAJANPRO-BOLD.OTF");
    tv3.setTypeface(typeFace);

это шаг, который я использовал как для английского, так и для местных языков

используйте шрифты fontinator IT support booth OTF и TTF

Это Android-библиотека сделать это легко, чтобы использовать пользовательские шрифты.

https://github.com/svendvd/Fontinator