Я хочу использовать внешние шрифты в своем приложении. Я попытался добавить новые шрифты с помощью управляющих активами, но это не сработало.
Typeface face;
face = Typeface.createFromAsset(getAssets(), "font.otf");
textview.setTypeface(face);
но текст не показывался...
Справка plz.
Ответ 1
AFAIK, Android не поддерживает OpenType. Вместо этого используйте шрифт TrueType.
UPDATE: Очевидно, OpenType теперь поддерживается, по крайней мере, несколько. Первоначально он не поддерживался, поэтому вам нужно тщательно протестировать шрифт на любых версиях Android, поддерживаемых вашим приложением.
Ответ 2
Чтобы легко получить доступ к нашему шрифту, нам необходимо связать его с нашим приложением таким образом, чтобы наш код мог впоследствии загрузить его. Чтобы сделать это, мы создаем папку 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);
Ответ 3
Android поддерживает OTF (я не уверен, из какой версии SDK, но он определенно работает с 1.6), я некоторое время использовал шрифт OTF пишущей машинки, но рендеринг нигде не был столь же точным, как и версия TTF, которую я закончил (через онлайн-конвертер шрифтов). Базовая линия была повсюду (некоторые буквы были на 2 пикселя выше других), а на телефонах LDPI, таких как HTC Wildfire, проблема значительно увеличилась из-за больших пикселей.
Ответ 4
У меня была такая же проблема. Мой шрифт тоже не работал в андроиде, но мне нужно было работать. Используя редактор шрифтов, я скопировал символы из моего шрифта в шрифт, который поставляется с примером FontSampler от Android-src-2_1. Он отлично работал.
Хотя я буду признавать, что мой метод был сомнительным с точки зрения интеллектуальной собственности, я фактически не использовал оригинальный шрифт, поскольку все символы были заменены, и все ссылки на старый шрифт, который также был заменен, Я попробовал "посмотреть" на то, как были определены два шрифта, но совпадение всех совпадений шрифтов тоже не срабатывало. Поэтому в ned я использовал скелет исходного шрифта в качестве шаблона для нового шрифта.
Ответ 5
android поддерживает как форматы otf, так и ttf, я испытал их оба.
tv3 = (TextView)findViewById(R.id.tv1);
Typeface typeFace = Typeface.createFromAsset(getAssets(), "fonts/TRAJANPRO-BOLD.OTF");
tv3.setTypeface(typeFace);
это шаг, который я использовал для английского и локального языков
Ответ 6
Использовать Fontinator он поддерживает стенд OTF и TTF Fonts
Это Android-библиотека, облегчающая использование пользовательских шрифтов.
https://github.com/svendvd/Fontinator
Ответ 7
Вы можете использовать простую стороннюю библиотеку EasyFonts, чтобы задать набор настраиваемых шрифтов для вашего TextView
. Используя эту библиотеку, вам не придется беспокоиться о загрузке и добавлении шрифтов в папку assets/fonts. Также о создании объекта Typeface.
Он предоставляет следующие грани шрифтов.
- Roboto
- Droid Serif
- Droid Robot
- Свобода
- Fun Raiser
- Android Nation
- Зеленый авокадо
- Признание
Просто:
TextView myTextView = (TextView)findViewById(R.id.myTextView);
myTextView.setTypeface(EasyFonts.robotoThin(this));