Сообщения как это, Как изменить семейство шрифтов TextView в Android, предлагают, что варианты шрифтов Roboto, которые можно указать в styles.xml в Android 4.2, сводятся к следующему:
Это не учитывает способность разработать использование TextViews, например, Roboto-средние или Roboto-черные шрифты.
Но почему Google добавил бы шрифты в масштабе всей системы, которые не могут использоваться для моделирования Вашего TextViews? Конечно, должен быть некоторый способ указать все шрифты Roboto из styles.xml (т.е. Не иметь, чтобы встроить шрифты как Активы и создать пользовательский TextViews в коде) - но как?
НОВОЕ РЕШЕНИЕ
После 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>
СТАРЫЙ ОТВЕТ
спасибо за 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>
Вспомогательная библиотека 26 представила шрифты использования в XML, и это назад совместимо с Android API 14.
Для добавления шрифтов как ресурсов выполните следующие шаги в Studio Android:
Щелкают правой кнопкой по res папке и переходят к Новому> каталог ресурса Android. Окно New Resource Directory появляется.
В списке Типа ресурса, выберите шрифт и затем нажмите "OK".Примечание: Название каталога ресурса должно быть шрифтом.
R.font.dancing_script
, R.font.lobster
, и R.font.typo_graphica
. Для установки шрифта для эти TextView
, в XML-файле расположения, устанавливают атрибут семейства шрифтов на файл шрифтов, к которому Вы хотите получить доступ.
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/lobster"/>
предварительный просмотр расположения Studio Android позволяет Вам предварительно просматривать набор шрифтов в TextView.
Для добавления шрифта к стилю Откройте styles.xml и установите атрибут семейства шрифтов на файл шрифтов, к которому Вы хотите получить доступ.
<style name="customfontstyle" parent="@android:style/TextAppearance.Small">
<item name="android:fontFamily">@font/lobster</item>
, Если Вы не хотите связывать шрифты в своем приложении, можно всегда изучать Загружаемые шрифты
На 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>
Я предлагаю, чтобы Вы пользовались пользовательскими библиотеками как Android-RobotoTextView или Каллиграфия . С одним из них можно установить шрифт представления в xml с атрибутом, таким образом, можно вставить в styles.xml. И они работают с предыдущей версией Android, чем 4,0