Подтвердить что ты не робот

Как указать, например. Roboto-Medium или Roboto-Black в styles.xml

Сообщения, подобные этому Как изменить fontFamily в TextView в Android, предлагает, чтобы варианты шрифтов Roboto, которые вы можете указать в styles.xml в Android 4.2, сводятся к следующее:

  • Обычный
  • Курсив
  • Жирный
  • Жирный курсив
  • Light
  • Light-наклонный
  • Тонкий
  • Тонкого наклонный
  • Конденсированный регулярный
  • Сжатый курсив
  • Сжатый жирный
  • Сжатый полужирный

Это исключает возможность стиля TextViews, используя, например. шрифты Roboto-Medium или Roboto-Black.

Но почему Google добавляет широкие шрифты системы, которые нельзя использовать для стилизации вашего TextViews? Конечно, должен быть какой-то способ указать все шрифты Roboto из styles.xml(т.е. НЕ добавлять встроенные шрифты в качестве активов и создавать собственные текстовые элементы в коде), но как?

4b9b3361

Ответ 1

На Android 5.0 вы можете установить среду Roboto с помощью sans-serif-medium.

Это решение, взятое из Google iosched 2014, использует sans-serif на Android pre-v21:

значения/styles.xml

<style name="MyStyle">
    <item name="android:fontFamily">@string/font_fontFamily_medium</item>
</style>

значения/fonts.xml

<string name="font_fontFamily_medium">sans-serif</string>

значения-V21/fonts.xml

<string name="font_fontFamily_medium">sans-serif-medium</string>

Ответ 2

НОВОЕ РЕШЕНИЕ

После Google I/O '17 вы можете создать несколько семейств шрифтов в папке res/font

<?xml version="1.0" encoding="utf-8"?>
<font-family xmlns:app="http://schemas.android.com/apk/res-auto">
<font
    app:font="@font/roboto_light"
    app:fontStyle="normal"
    app:fontWeight="300" />
<font
    app:font="@font/roboto_bold"
    app:fontStyle="normal"
    app:fontWeight="700" />

</font-family>

и вы можете использовать везде, где хотите

 <style name="AppTheme.DefaultTextView" parent="android:style/Widget.TextView">
    <item name="android:textColor">@color/colorBlack</item>
    <item name="android:fontFamily">@font/font_family_roboto</item>
</style>

font folder font family

СТАРЫЙ ОТВЕТ

Спасибо за Якоба Эрикссона

оригинальный ответ

android:fontFamily="sans-serif"           // roboto regular
android:fontFamily="sans-serif-light"     // roboto light
android:fontFamily="sans-serif-condensed" // roboto condensed
android:fontFamily="sans-serif-black"     // roboto black
android:fontFamily="sans-serif-thin"      // roboto thin (android 4.2)
android:fontFamily="sans-serif-medium"    // roboto medium (android 5.0)

стильно:

<style name="AppTheme.DefaultTextView" parent="android:style/Widget.TextView">
    <item name="android:textSize">@dimen/text_view_text_size</item>
    <item name="android:textColor">@color/black</item>
    <item name="android:fontFamily">sans-serif-light</item>
    <item name="android:textStyle">normal</item>
</style>

в теме приложения:

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/gray</item>
    <item name="android:textViewStyle">@style/AppTheme.DefaultTextView</item>
</style>

Ответ 3

Я предлагаю вам использовать пользовательские библиотеки, такие как Android-RobotoTextView или Calligraphy. С одним из них вы можете установить шрифт представления в xml с атрибутом, чтобы вы могли вставить его в styles.xml. И они работают с предыдущей версией Android, чем 4.0

Ответ 4

Библиотека поддержки 26 представила с использованием шрифтов в XML и обратно совместима с Android API 14.

Чтобы добавить шрифты в качестве ресурсов, выполните следующие шаги в Android Studio:

  • Щелкните правой кнопкой мыши папку res и выберите "Создать" > "Каталог ресурсов Android". Появится окно New Resource Directory.

  • В списке Тип ресурса выберите шрифт и нажмите кнопку ОК. Примечание. Имя каталога ресурсов должно быть шрифтом.

Рисунок 1. Добавление каталога ресурсов шрифта

  1. Добавьте файлы шрифтов в папку шрифтов. Структура папки ниже генерирует R.font.dancing_script, R.font.lobster и R.font.typo_graphica.

Рисунок 2. Добавление файлов шрифтов в каталог ресурсов

  1. Дважды щелкните файл шрифта, чтобы просмотреть шрифты файла в редакторе.

Рисунок 3. Предварительный просмотр файла шрифта

Чтобы установить шрифт для TextView, в XML файле макета установите атрибут fontFamily в файл шрифта, к которому вы хотите получить доступ.

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:fontFamily="@font/lobster"/>

Предварительный просмотр макета Android Studio позволяет просмотреть шрифт, установленный в TextView.

Рисунок 4. Предварительный просмотр шрифтов в предварительном просмотре макетa

Чтобы добавить шрифт в стиль, откройте styles.xml и установите атрибут fontFamily в файл шрифта, к которому вы хотите получить доступ.

<style name="customfontstyle" parent="@android:style/TextAppearance.Small">
<item name="android:fontFamily">@font/lobster</item>

Если вы не хотите связывать шрифты в своем приложении, вы всегда можете посмотреть Загружаемые шрифты