Что такое семейство шрифтов по умолчанию в Android?

Начиная с API 16, Jellybean Roboto был представлен как доступное семейство шрифтов для использования. Смотрите, что нового в Android 16 здесь.

Указание android:fontFamily="sans-serif" (Roboto в API 16+) на TextView по умолчанию fontFamily TextView?

Является

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

эквивалентно

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:fontFamily="sans-serif" />

?

От Сайт типографии типографии:

"Roboto и Noto - стандартные шрифты на Android и Chrome".

Из Wiki,

"Roboto - это семейство шрифтов без засечек, разработанное Google как системный шрифт для своей мобильной операционной системы Android".

Я не вижу в документах, что такое по умолчанию fontFamily для Android. См. Ссылки:

Ответ 1

Нет документации по d.android.com для имен семейств шрифтов. Однако, если вы посмотрите на AOSP, шрифты по умолчанию загружаются в android.graphics.*. FontListParser загружает шрифты по умолчанию из /system/etc/fonts.xml (Android 5.0+) или /system/etc/system_fonts.xml (Android 4.1). Шрифты по умолчанию загружаются в Typeface # init.

В двух файлах XML есть документация. Первый шрифт - шрифт по умолчанию. Вы можете вытащить /system/etc/fonts.xml с вашего устройства. Производитель устройства или пользовательский ПЗУ могут изменять системные шрифты по умолчанию.

fonts.xml (API 21 +)

ПРИМЕЧАНИЕ: это новая (L) версия конфигурации системного шрифта,   поддерживая более богатый выбор веса. Некоторые приложения ожидают, что   версии, поэтому, пожалуйста, храните system_fonts.xml и fallback_fonts.xml в синхронизации   с любыми изменениями, даже несмотря на то, что фреймворк будет только читать этот файл.

Все имена шрифтов withohut добавляются в список по умолчанию. Шрифты выбраны   на основе соответствия: полный тег языка BCP-47, включающий script, затем просто   язык и, наконец, порядок (первый шрифт, содержащий глиф).

Порядок появления также является тай-брейкером для соответствия веса. Это   причина, по которой 900 весов Roboto предшествуют 700 весам - мы   предпочитают первое, когда запрашивается 800 вес. Поскольку жирные промежутки   эффективно добавьте 300 к весу, это гарантирует, что 900 является жирным   в сочетании с весом 500, обеспечивая адекватный контраст.

system_fonts.xml (API 16-20)

Системные шрифты

В этом файле перечислены семейства шрифтов, которые будут использоваться по умолчанию для всех поддерживаемых глифов.   Каждая запись состоит из семьи, различных имен, которые поддерживаются этим семейством, и   до четырех файлов шрифтов. Файлы шрифтов перечислены в порядке стилей, которые они   поддержка: регулярная, жирная, курсивная и полужирная. Если указано менее четырех стилей, тогда   стили без связанного файла шрифта будут поддерживаться другими файлами шрифтов.

Первое семейство также является шрифтом по умолчанию, который обрабатывает запрос шрифта, который не указан   конкретные имена шрифтов.

Любой глиф, который не обрабатывается системными шрифтами, приведет к поиску резервных шрифтов.   Исходные шрифты по умолчанию указаны в файле /system/etc/fallback _fonts.xml, и там   является необязательным файлом, который может поставляться поставщиками для указания других резервных шрифтов для использования   в /vendor/etc/fallback _fonts.xml.

Если вы проанализируете файл fonts.xml, вы можете найти, какое семейство шрифтов использует этот шрифт (см. здесь):

╔════╦════════════════════════════╦═════════════════════════════╗
║    ║ FONT FAMILY                ║ TTF FILE                    ║
╠════╬════════════════════════════╬═════════════════════════════╣
║  1 ║ casual                     ║ ComingSoon.ttf              ║
║  2 ║ cursive                    ║ DancingScript-Regular.ttf   ║
║  3 ║ monospace                  ║ DroidSansMono.ttf           ║
║  4 ║ sans-serif                 ║ Roboto-Regular.ttf          ║
║  5 ║ sans-serif-black           ║ Roboto-Black.ttf            ║
║  6 ║ sans-serif-condensed       ║ RobotoCondensed-Regular.ttf ║
║  7 ║ sans-serif-condensed-light ║ RobotoCondensed-Light.ttf   ║
║  8 ║ sans-serif-light           ║ Roboto-Light.ttf            ║
║  9 ║ sans-serif-medium          ║ Roboto-Medium.ttf           ║
║ 10 ║ sans-serif-smallcaps       ║ CarroisGothicSC-Regular.ttf ║
║ 11 ║ sans-serif-thin            ║ Roboto-Thin.ttf             ║
║ 12 ║ serif                      ║ NotoSerif-Regular.ttf       ║
║ 13 ║ serif-monospace            ║ CutiveMono.ttf              ║
╚════╩════════════════════════════╩═════════════════════════════╝