Как я указываю, например, Roboto-средний или Roboto-черный в styles.xml

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

  • Регулярный
  • Курсив
  • Полужирный
  • Полужирный курсив
  • Свет
  • Light Italic
  • Тонкий
  • Тонкий курсив
  • Сжатый постоянный клиент
  • Сжатый курсив
  • Сжатый полужирный
  • Сжатый полужирный курсив

Это не учитывает способность разработать использование TextViews, например, Roboto-средние или Roboto-черные шрифты.

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

62
задан 23 May 2017 в 15:10

4 ответа

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

После Google I/O '17 можно создать несколько семейство шрифтов в [1 110] папка 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

СТАРЫЙ ОТВЕТ

спасибо за Jakob Eriksson

исходный ответ

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>
37
ответ дан 31 October 2019 в 13:43

Вспомогательная библиотека 26 представила шрифты использования в XML, и это назад совместимо с Android API 14.

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

  1. Щелкают правой кнопкой по res папке и переходят к Новому> каталог ресурса Android. Окно New Resource Directory появляется.

  2. В списке Типа ресурса, выберите шрифт и затем нажмите "OK".Примечание: Название каталога ресурса должно быть шрифтом.

Figure 1. Adding the font resource directory

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

Figure 2. Adding the font files in the resource directory

  1. Дважды щелкают по файлу шрифтов для предварительного просмотра шрифтов файла в редакторе.

Figure 3. Previewing the font file

Для установки шрифта для эти TextView, в XML-файле расположения, устанавливают атрибут семейства шрифтов на файл шрифтов, к которому Вы хотите получить доступ.

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

предварительный просмотр расположения Studio Android позволяет Вам предварительно просматривать набор шрифтов в TextView.

Figure 4. Previewing fonts in layout preview

Для добавления шрифта к стилю Откройте styles.xml и установите атрибут семейства шрифтов на файл шрифтов, к которому Вы хотите получить доступ.

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

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

3
ответ дан 31 October 2019 в 13:43

На Android 5.0 можно установить Носитель Roboto с sans-serif-medium.

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

values/styles.xml

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

values/fonts.xml

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

values-v21/fonts.xml

<string name="font_fontFamily_medium">sans-serif-medium</string>
90
ответ дан 31 October 2019 в 13:43

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

4
ответ дан 31 October 2019 в 13:43

Другие вопросы по тегам:

Похожие вопросы: