Допустимые значения для android: fontFamily и на что они направлены?


Answers

Доступные шрифты (от Oreo)

На странице типовой типографии материалов представлены демонстрации некоторых из этих шрифтов и предложения по выбору шрифтов и стилей.

Для сыщиков кода: android.googlesource.com/platform/frameworks/base/+/master/data/… является окончательным и постоянно расширяющимся списком шрифтов Android.

Использование этих шрифтов

Установите android:fontFamily и android:textStyle , например

<!-- Roboto Bold -->
<TextView
    android:fontFamily="sans-serif"
    android:textStyle="bold" />

к требуемым значениям из этой таблицы:

Font                     | android:fontFamily          | android:textStyle
-------------------------|-----------------------------|-------------------
Roboto Thin              | sans-serif-thin             |
Roboto Light             | sans-serif-light            |
Roboto Regular           | sans-serif                  |
Roboto Bold              | sans-serif                  | bold
Roboto Medium            | sans-serif-medium           |
Roboto Black             | sans-serif-black            |
Roboto Condensed Light   | sans-serif-condensed-light  |
Roboto Condensed Regular | sans-serif-condensed        |
Roboto Condensed Medium  | sans-serif-condensed-medium |
Roboto Condensed Bold    | sans-serif-condensed        | bold
Noto Serif               | serif                       |
Noto Serif Bold          | serif                       | bold
Droid Sans Mono          | monospace                   |
Cutive Mono              | serif-monospace             |
Coming Soon              | casual                      |
Dancing Script           | cursive                     |
Dancing Script Bold      | cursive                     | bold
Carrois Gothic SC        | sans-serif-smallcaps        |

(Noto Sans - резервный шрифт, вы не можете указать его напрямую)

Примечание. Эта таблица выводится из android.googlesource.com/platform/frameworks/base/+/master/data/… . Имя и стиль каждого шрифта перечислены в файле fonts.xml, например

<family name="serif-monospace">
    <font weight="400" style="normal">CutiveMono.ttf</font>
</family>

Таким образом, serif-monospace является семейством шрифтов, а normal является стиль.

Совместимость

На основе log fonts.xml и прежнего system_fonts.xml вы можете увидеть, когда был добавлен каждый шрифт:

  • Мороженое Сэндвич: Робото регулярный, полужирный, курсив и жирный курсив
  • Jelly Bean: свет Roboto, светло-курсив, конденсированный, конденсированный жирный, конденсированный курсив и конденсированный жирный курсив
  • Jelly Bean MR1: Roboto тонкий и тонкий курсив
  • Леденец:
    • Робото средняя, ​​средняя курсив, черный и черный курсив
    • Noto Serif регулярный, полужирный, курсив, жирный курсив
    • Режущий моно
    • Скоро
    • Танцевальный скрипт
    • Carrois Gothic SC
    • Ното Санс
  • Oreo MR1: конденсированная среда Roboto
Question

В ответе на этот вопрос пользователь перечисляет значения для android:fontFamily и 12 вариантов (см. Ниже). Откуда берутся эти ценности? Документация для android:fontFamily не перечисляет эту информацию ни в каком месте (я проверил here и here ). Строки перечислены в styles.xml Android в разных местах, но как эти карты вернутся к шрифту Roboto?

Из Android 4.1 / 4.2 доступны следующие семейства шрифтов Roboto:

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

в сочетании с этим

android:textStyle="normal|bold|italic" 

Возможны 12 вариантов:

  • регулярное
  • курсивный
  • Жирный
  • Жирный курсив
  • Легкий
  • Светло-наклонным
  • тонкий
  • Тонкий курсив
  • Сжатый регулярный
  • Сжатый курсив
  • Сжатый жирный
  • Сжатый полужирный

В styles.xml в приложении я работаю над кем-то, указав это как семейство шрифтов, и я уверен, что это неправильно:

<item name="android:fontFamily">Roboto-Regular.ttf</item>

Я хотел бы правильно настроить тему для нашего приложения (в том числе правильно использовать fontFamily) и удалить всю избыточность, которая находится в некоторых стилях, которые были созданы до того, как я просмотрел файл.