Я применил пользовательский шрифт к a TextView
, но, похоже, он не меняет гарнитуру.
Вот мой код:
Typeface myTypeface = Typeface.createFromAsset(getAssets(), "fonts/myFont.ttf");
TextView myTextView = (TextView)findViewById(R.id.myTextView);
myTextView.setTypeface(myTypeface);
Кто-нибудь может вытащить меня из этого вопроса?
android
custom-font
android-fonts
android-typeface
гремучая змея
источник
источник
myTextView.setTypeface(myTypeface);
Ответы:
На Mobiletuts + есть очень хорошее руководство по форматированию текста для Android. Совет: настраивайте шрифты Android
РЕДАКТИРОВАТЬ: Протестировал это сам сейчас. Вот решение. Вы можете использовать подпапку, называемую шрифтами, но она должна находиться в
assets
папке, а не вres
папке. ТакТакже убедитесь, что окончание шрифта, я имею в виду окончание самого файла шрифта, все в нижнем регистре. Другими словами это не должно быть,
myFont.TTF
ноmyfont.ttf
этот путь должен быть в нижнем регистреисточник
createFromAsset
функция напрямую указывает наassets
каталог)Попробовав большинство решений, описанных в этой теме, я случайно обнаружил Calligraphy ( https://github.com/chrisjenx/Calligraphy ) - библиотеку Кристофера Дженкинса, которая позволяет легко добавлять пользовательские шрифты в ваше приложение. Преимущества его библиотеки по сравнению с подходами, предложенными здесь:
источник
Я знаю, что уже есть хорошие ответы, но вот полностью рабочая реализация.
Вот пользовательский вид текста:
Вот пользовательские атрибуты. Это должно перейти в ваш
res/attrs.xml
файл:И вот как вы это используете. Я буду использовать относительный макет, чтобы обернуть его и показать
customAttr
объявление, но, очевидно, это может быть любой макет, который у вас уже есть.источник
customAttrs
относится к моему проекту?xmlns:customAttrs="http://schemas.android.com/apk/res-auto"
. Это автоматически получает атрибуты, установленные для пользовательских представлений. В этом случае у вас есть атрибут customFont, определенный в attrs.xml. Более простой способ понять, что это заxmlns:android="http://schemas.android.com/apk/res/android"
определение пространства имен для ваших атрибутов android. Так что, если бы вы изменили это наa
то, а не наandroid:text
этоa:text
.Я успешно использовал это раньше. Единственная разница между нашими реализациями заключается в том, что я не использовал подпапку в активах. Не уверен, что это что-то изменит, хотя.
источник
При условии, что вы поместили шрифт в нужное место и в самом файле шрифта нет ошибки, ваш код должен работать так, RATTLESNAKE.
Тем не менее, было бы намного проще, если бы вы могли просто определить шрифт в вашем макете XML, например так:
С сопроводительным
res/values/styles.xml
:Я создал несколько инструментов специально для этой цели. Обратитесь к этому проекту от GitHub или посмотрите этот пост в блоге, который объясняет все это.
источник
Лучший способ сделать это из предварительной версии Android O:
это работает, только если у вас есть Android Studio-2.4 или выше
окно «Новый каталог ресурсов».
R.font.dancing_script
,R.font.la_la
иR.font.ba_ba
.Далее мы должны создать семейство шрифтов:
Включите каждый файл шрифта, стиль и атрибут веса в элемент тега шрифта. Следующий XML-код иллюстрирует добавление связанных со шрифтом атрибутов в XML-код ресурса шрифта:
Добавление шрифтов в TextView:
Как из документации
Все шаги правильные.
источник
Для пользовательских шрифтов в Android создайте папку с именем папки с ресурсами, в ней «шрифты» поместите нужный файл fonts.ttf или .otf.
Если вы расширяете UIBaseFragment:
еще, если расширяет активность:
источник
Вы можете использовать PixlUI по адресу https://github.com/neopixl/PixlUI.
импортировать их .jar и использовать его в XML
источник
Поскольку я не был удовлетворен всеми представленными решениями на SO, я придумал свои. Он основан на небольшом трюке с тегами (то есть вы не можете использовать теги в своем коде), я поместил туда путь шрифта. Поэтому при определении представлений вы можете сделать следующее:
или это:
Теперь вы можете явно открыть / настроить вид как:
или просто настроить все через:
А какой урок магии вы спрашиваете? В основном склеены из других сообщений SO, с помощью вспомогательных методов для активности и фрагментов:
источник
К сожалению, нет хорошего решения для этого.
Я видел много статей об использовании пользовательского TextView, но что они забыли, так это то, что не только текстовые представления могут реализовывать шрифты, но есть текстовые представления, скрытые в других представлениях, недоступных для разработчика; Я даже не собираюсь начинать Spannable .
Вы можете использовать утилиту внешнего шрифта, например:
Каллиграфический шрифт
НО Это зацикливается на каждом представлении в приложении при его создании, и даже эта утилита пропускает некоторые представления (ViewPager отображает обычный шрифт), тогда у вас возникает проблема, заключающаяся в том, что когда Google обновляет свои инструменты сборки, это иногда приводит к сбою, так как ему нужно ориентироваться на устаревшие свойства. Он также немного медленный, поскольку использует отражение Java .
Это действительно зависит от Google, чтобы исправить это. Нам нужна лучшая поддержка шрифтов в Android. Если вы посмотрите на решение от iOS, у них буквально есть сотни встроенных шрифтов на выбор. Хотите нестандартный шрифт? Просто вставьте TFF, и это пригодится ...
На данный момент были ограничены предложением, которое предлагает нам Google, которое чрезвычайно ограничено, но к счастью оптимизировано для мобильных устройств.
источник
Обязательно вставьте приведенный выше код в onCreate () после вызова супер и вызова setContentView (). Эта маленькая деталь удерживала меня на некоторое время.
источник
С Android 8.0 использование пользовательских шрифтов в приложении стало проще
downloadable fonts
. Мы можем добавлять шрифты непосредственноres/font/ folder
в папку проекта, и при этом шрифты автоматически становятся доступны в Android Studio.Теперь установите
fontFamily
атрибут в список шрифтов или нажмите больше и выберите шрифт по вашему выбору. Это добавитtools:fontFamily="@font/your_font_file"
строку в ваш TextView.Это автоматически сгенерирует несколько файлов.
1. В папке значений это создаст
fonts_certs.xml
.2. В Manifest он добавит следующие строки:
3.
preloaded_fonts.xml
источник
Вы можете использовать легкую и простую стороннюю библиотеку EasyFonts для установки различных пользовательских шрифтов на свой
TextView
. Используя эту библиотеку, вам не нужно беспокоиться о загрузке и добавлении шрифтов в папку assets / fonts. Также о создании объекта гарнитуры.Вместо того
Просто:
Эта библиотека также обеспечивает следующий шрифт лица.
источник
У меня была такая же проблема, TTF не появился. Я изменил файл шрифта, и с тем же кодом он работает.
источник
Если вы хотите загрузить шрифт из сети или легко стилизовать его, вы можете использовать:
https://github.com/shellum/fontView
Пример:
источник
Ну, через семь лет вы можете легко изменить все приложение
textView
или то, что хотите, используяandroid.support
библиотеки 26 ++.Например:
Создайте свой пакет шрифтов app / src / res / font и переместите в него свой шрифт.
А в теме вашего приложения просто добавьте его как fontFamily:
Пример для использования
textView
только с:И добавьте в свою главную тему:
В настоящее время он работает на 8.1 до 4.1 API Jelly Bean И это широкий спектр.
источник
Обновить ответ: Android 8.0 (уровень API 26) представляет новую функцию «Шрифты в XML». просто используйте функцию «Шрифты в XML» на устройствах под управлением Android 4.1 (уровень API 16) и выше, используйте библиотеку поддержки 26.
см эту ссылку
Старый ответ
Есть два способа настройки шрифтов:
Способ 1: Refrection Typeface.class ||| лучший способ
вызов FontsOverride.setDefaultFont () в классе расширяет приложение. Этот код приведет к изменению всех программных шрифтов, даже шрифтов Toasts
AppController.java
FontsOverride.java
Способ 2: использовать setTypeface
для особого просмотра просто вызовите setTypeface (), чтобы изменить шрифт.
CTextView.java
FontUtils.java
источник
Правильный способ сделать это с API 26 описан в официальной документации здесь:
https://developer.android.com/guide/topics/ui/look-and-feel/fonts-in-xml.html
Это включает размещение файлов ttf в папке res / font и создание файла семейства шрифтов.
источник
Самое простое решение Android поддерживается сейчас!
Используйте пользовательский шрифт в XML:
смотреть детали:
https://developer.android.com/guide/topics/ui/look-and-feel/fonts-in-xml.html
источник
TextView txt = (TextView) findViewById(R.id.txt_act_spalsh_welcome); Typeface font = Typeface.createFromAsset(getAssets(), "fonts/Aramis Italic.ttf"); txt.setTypeface(font);
название шрифта должно быть правильным и веселиться
источник
Да, загружаемые шрифты так просты, как Dipali сказал .
Вот как ты это делаешь ...
TextView
запрос .fontFamily
раскрывающийся список . Если его там нет, найдите каретку и нажмите на нее, чтобы развернутьtextAppearance
) под.font-family
раскрывающийся .more fonts
Google Fonts
Add font to project
БОНУС: Если вы хотите использовать ВСЕ в тексте в приложении с выбранным шрифтом, просто добавьте
<item name="android:fontfamily">@font/fontnamehere</item>
в свойstyles.xml
источник