Используйте внешние шрифты в Android
-
07-07-2019 - |
Вопрос
Я хочу использовать внешние шрифты в своем приложении.Я пробовал добавлять новые 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-библиотека, упрощающая использование пользовательских шрифтов.