Поэтому я хотел бы изменить android:fontFamily
в Android, но я не вижу предопределенных шрифтов в Android. Как выбрать один из предопределенных? Мне действительно не нужно определять свой собственный TypeFace, но все, что мне нужно, это нечто отличное от того, что он показывает прямо сейчас.
<TextView
android:id="@+id/HeaderText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="52dp"
android:gravity="center"
android:text="CallerBlocker"
android:textSize="40dp"
android:fontFamily="Arial"
/>
Кажется, то, что я сделал там, на самом деле не сработает! Кстати, это android:fontFamily="Arial"
была глупая попытка!
Ответы:
Начиная с Android 4.1 / 4.2 / 5.0 доступны следующие семейства шрифтов Roboto :
в комбинации с
Возможны 16 вариантов:
fonts.xml
источник
android:fontFamily="sans-serif-black-small-caps"
не работает. Кто-нибудь знает?android:fontFamily
по TextView.Это способ установить шрифт программно:
поместите файл шрифта в папку с активами. В моем случае я создал подкаталог с именем шрифты.
РЕДАКТИРОВАТЬ: Если вам интересно, где находится ваша папка активов, посмотрите этот вопрос
источник
Начиная с Android-Studio 3.0 очень легко изменить семейство шрифтов
Используя библиотеку поддержки 26, она будет работать на устройствах под управлением Android API версии 16 и выше.
Создайте папку
font
вres
каталоге. Загрузите нужный шрифт и вставьте его вfont
папку. Структура должна быть такой, как показано нижеПримечание. Начиная с библиотеки поддержки Android 26.0, вы должны объявить оба набора атрибутов (android: и app:), чтобы гарантировать загрузку ваших шрифтов на устройствах с Api 26 или ниже.
Теперь вы можете изменить шрифт в макете, используя
Изменить программно
Чтобы изменить шрифт с помощью styles.xml создайте стиль
и применить этот стиль к
TextView
Вы также можете создать свое собственное семейство шрифтов
- Щелкните правой кнопкой мыши папку шрифтов и выберите « Создать»> «Файл ресурсов шрифта» . Откроется окно «Новый файл ресурсов».
- Введите имя файла и нажмите « ОК» . Новый ресурс шрифта XML открывается в редакторе.
Напишите здесь свое семейство шрифтов, например
это просто отображение определенного fontStyle и fontWeight в ресурс шрифта, который будет использоваться для визуализации этого конкретного варианта. Допустимые значения для fontStyle нормальные или курсивные; и fontWeight соответствует спецификации CSS font-weight
1. Чтобы изменить шрифтовую семью в макете вы можете написать
2. Изменять программно
Чтобы изменить шрифт всего приложения Добавьте эти две строки в AppTheme
См. Документацию , учебник по Android Custom Fonts для получения дополнительной информации
источник
getResources()
? РЕДАКТИРОВАТЬ : Эта строка в конце вашего ответа работал для меня:Typeface typeface = ResourcesCompat.getFont(context, R.font.myfont);
android:fontWeight
иapp:fontWeight
Пришлось разбирать
/system/etc/fonts.xml
в недавнем проекте. Вот текущие семейства шрифтов на Lollipop:Вот парсер (основанный на FontListParser ):
Не стесняйтесь использовать вышеупомянутый класс в своем проекте. Например, вы можете предоставить своим пользователям набор семейств шрифтов и установить шрифт на основе их предпочтений.
Небольшой неполный пример:
источник
getSystemFonts()
, я получил исключениеorg.xmlpull.v1.XmlPullParserException: END_TAG expected (position:START_TAG (empty) <axis tag='wdth' stylevalue='100.0'>@219:51 in java.io.InputStreamReader@f001fb3)
Android не позволяет устанавливать пользовательские шрифты из макета XML. Вместо этого вы должны связать определенный файл шрифта в папке ресурсов вашего приложения и установить его программно. Что-то вроде:
Обратите внимание, что вы можете запустить этот код только после вызова setContentView (). Кроме того, только некоторые шрифты поддерживаются Android и должны быть в формате
.ttf (TrueType)
или.otf (OpenType)
. Даже тогда некоторые шрифты могут не работать.Это шрифт, который определенно работает на Android, и вы можете использовать его, чтобы убедиться, что ваш код работает, если ваш файл шрифтов не поддерживается Android.
Обновление Android O: теперь это возможно с XML в Android O , основываясь на комментарии Роджера.
источник
Чтобы установить Roboto программно:
источник
Это так же, как
android:typeface
.Встроенные шрифты:
Смотрите андроид: гарнитура .
источник
setTypeface()
. А именноfontFamily
,typeface
иtextStyle
. Но я на всю жизнь не могу понять, как они точно сочетаются для разрешения конкретного экземпляра Typeface. Кто-нибудь понял это? Документация Google менее чем полезна ...Если вы хотите это программно, вы можете использовать
Где
SANS_SERIF
вы можете использовать:DEFAULT
DEFAULT_BOLD
MONOSPACE
SANS_SERIF
SERIF
И где
ITALIC
вы можете использовать:BOLD
BOLD_ITALIC
ITALIC
NORMAL
Все заявлено на Android разработчиков
источник
Я использую отличную библиотеку Calligraphy от Chris Jenx, разработанную, чтобы позволить вам использовать пользовательские шрифты в вашем приложении для Android. Попробуйте!
источник
То, что вы хотите, не возможно. Вы должны установить это
TypeFace
в своем коде.В
XML
том, что вы можете сделать, этокроме этого, вы не можете много играть со шрифтами в XML. :)
Для
Arial
вас нужно установить тип лица в вашем коде.источник
Простым способом управления шрифтами было бы объявить их через ресурсы как таковые:
Это основано на исходном коде здесь и здесь
источник
Динамически вы можете установить fontfamily аналогично Android: fontFamily в XML, используя это,
Это список используемого семейства шрифтов , используйте любой из них, заменив строку двойных кавычек "sans-serif-medium"
«mycustomfont.ttf» - это файл ttf. Путь будет в src / assets / fonts / mycustomfont.ttf , вы можете больше узнать о шрифте по умолчанию в этом семействе шрифтов по умолчанию
источник
легко установить шрифт для любого текстового представления из каталога res> font программно
источник
Я думаю, что я слишком поздно, но, возможно, это решение полезно для других. Для использования собственного шрифта поместите файл шрифта в каталог шрифтов.
источник
С помощью проб и ошибок я узнал следующее.
В * .xml вы можете комбинировать стандартные шрифты со следующими функциями, а не только с гарнитурой:
С этими двумя стилями не было необходимости использовать гарнитуру в любом другом случае. Диапазон комбинаций намного больше с fontfamily & textStyle.
источник
Действительное значение android: fontFamily определяется в /system/etc/system_fonts.xml(4.x) или /system/etc/fonts.xml(5.x). Но Производитель устройства может изменить его, поэтому фактический шрифт, используемый установкой значения fontFamily, зависит от вышеупомянутого файла указанного устройства.
В AOSP шрифт Arial является допустимым, но должен быть определен с использованием «arial», а не «Arial», например, android: fontFamily = «arial» . Посмотрите qucik на system_fonts.xml Китката
////////////////////////////////////////////////// ////////////////////////
Существует три соответствующих xml-атрибута для определения «шрифта» в макете : android: fontFamily , android: typeface и android: textStyle . Комбинация «fontFamily» и «textStyle» или «typeface» и «textStyle» может использоваться для изменения внешнего вида шрифта в тексте, так же как и в одиночку. Фрагмент кода в TextView.java примерно так:
Из кода видно:
источник
Вот более простой способ, который может работать в некоторых случаях. Принцип заключается в том, чтобы добавить невидимый TextVview в макет xml и получить его typeFace в коде Java.
Макет в XML-файле:
И код Java:
Это сработало для меня (например, в TextSwitcher).
источник
Попробуй это:
источник
Вы также можете сделать это, добавив папку шрифтов в директорию res, как показано ниже.
Затем, выбрав Font в качестве типа ресурса.
Вы можете найти доступные шрифты на https://www.1001fonts.com/ , а затем распаковать файлы TTF в этот каталог шрифтов.
Наконец, просто измените XML-файл, содержащий ваше текстовое представление, добавив android: fontFamily: "@ font / urfontfilename"
источник
app:fontFamily=
все остальное так же.Одним простым способом является добавление нужного шрифта в проект.
Перейдите в Файл-> Новый-> Новый каталог ресурсов. Выберите шрифт.
Это создаст новый каталог, шрифт , в ваших ресурсах.
Загрузите ваш шрифт (.ttf) . Я использую https://fonts.google.com для того же
Добавьте это в папку со шрифтами, затем используйте их в XML или программно.
XML -
Программно -
источник
ResourcesCompat.getFont
методисточник
Если вы хотите использовать TextView во многих местах с одним и тем же семейством шрифтов, расширьте класс TextView и установите свой шрифт следующим образом: -
А затем используйте этот пользовательский класс в xml для TextView следующим образом:
источник
Если вы используете Android Studio 3.5+, изменить шрифт очень просто. Выберите текстовый виджет в представлении «Дизайн» и проверьте fontFamily в окне «Атрибуты». Раскрывающееся значение содержит все доступные шрифты, из которых вы можете выбрать один. Если вы ищете Google Fonts, выберите опцию More Fonts.
Окно атрибутов
Google Fonts
источник
Я просто хочу упомянуть, что ад со шрифтами внутри Android вот-вот закончится, потому что в этом году в Google IO мы наконец получили это -> https://developer.android.com/preview/features/working-with-fonts. HTML
Теперь появился новый тип ресурса - шрифт, и вы можете поместить все свои шрифты приложения в папку res / fonts и затем обращаться к ним с помощью R.font.my_custom_font, точно так же, как вы можете получить доступ к строковым значениям res, рисуемым значениям res и т. Д. У вас даже есть шанс создать xml-файл font-face , в котором будут установлены ваши собственные шрифты (курсивом, жирным шрифтом и подчеркиванием).
Прочитайте ссылку выше для получения дополнительной информации. Давайте посмотрим на поддержку.
источник
Redman
ответ пользователя выше - все еще очень необходимая часть решения.Для этого есть хорошая библиотека
источник
Новый ресурс шрифта позволяет напрямую устанавливать
font
с помощьюисточник
Вы устанавливаете стиль
res/layout/value/style.xml
следующим образом:и использовать этот стиль в
main.xml
использовании файла:источник
Для Android-Studio 3 и выше вы можете использовать этот стиль, а затем все
textView
изменения шрифта в приложении.создать этот стиль в вашем
style.xml
:Тогда используйте это в своей теме:
источник
Самый простой способ программного добавления шрифта в TextView - это сначала добавить файл шрифта в папку «Ресурсы» в проекте. Например, ваш путь к шрифту выглядит так:
assets/fonts/my_font.otf
И добавьте его в TextView как:
Котлин
Ява
источник
Здесь вы можете увидеть все доступные значения fontFamily и соответствующие им имена файлов шрифтов (этот файл используется в Android 5.0+). В мобильном устройстве вы можете найти его в:
(Для Android 4.4 и ниже, используя эту версию, но я думаю, что она
fonts.xml
имеет более четкий формат и легко понять.)Например,
Имя атрибут
name="sans-serif"
изfamily
тега определяется значение , которое вы можете использовать в Android: FontFamily.font
Теги определяют переписывались файлы шрифтов.В этом случае вы можете игнорировать исходный код
<!-- fallback fonts -->
, он использует логику восстановления шрифтов.источник