Вопрос

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

Typeface face;

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

textview.setTypeface(face);

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

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

Это было полезно?

Решение

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

<Ч>

ОБНОВЛЕНИЕ: Очевидно, OpenType теперь поддерживается, по крайней мере, в некоторой степени. Первоначально он не поддерживался, поэтому вам нужно тщательно протестировать шрифт на любых версиях Android, которые будет поддерживать ваше приложение.

Другие советы

Чтобы легко получить доступ к нашему шрифту, нам нужно связать его с нашим приложением таким образом, чтобы наш код мог впоследствии загрузить его.Для этого мы создаем папку Fonts в нашем assets 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, он поддерживает шрифты OTF и TTF на стенде

Это Android-библиотека, упрощающая использование пользовательских шрифтов.

https://github.com/svendvd/Fontinator

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top