Шрифты не поддерживаются в Oreo - PullRequest
0 голосов
/ 26 мая 2018

У меня есть приложение, в котором у меня есть шрифт с именем «Crilee», который отлично работает на других устройствах, но не в версии Oreo в Android.Я использовал settypeface() для установки шрифтов.Могу ли я узнать причину, по которой некоторые шрифты не поддерживаются в версии Oreo, а также на некоторых устройствах?

Ответы [ 2 ]

0 голосов
/ 30 июля 2018

У меня возникла точно такая же проблема, и я исправил ее, загружая файл ttf в https://everythingfonts.com/font-face и используя созданный файл ttf на этом веб-сайте.Это волшебно сработало.Если кто-то знает больше о типе конверсии, было бы здорово поделиться.

0 голосов
/ 26 мая 2018

Android 8.0 (уровень API 26) представляет новую функцию Шрифты в XML , которая позволяет использовать шрифты в качестве ресурсов.

Добавьте файлы шрифтов в папку font в каталоге res .

enter image description here

Затем создайте XML-файл семейства шрифтов в папке font .
Включите каждый файл шрифта, стиль иАтрибут weight в элементе <font>, как показано ниже.

<?xml version="1.0" encoding="utf-8"?>
<font-family xmlns:android="http://schemas.android.com/apk/res/android">
<font
    android:fontStyle="normal"
    android:fontWeight="400"
    android:font="@font/lobster_regular" />
<font
    android:fontStyle="italic"
    android:fontWeight="400"
    android:font="@font/lobster_italic" />
</font-family>

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

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

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

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

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

Typeface typeface = getResources().getFont(R.font.myfont);
textView.setTypeface(typeface);

Примечание: Для использования функции «Шрифты в XML» на устройствах с Android 4.1 (уровень API 16) и выше , используйте библиотеку поддержки26 .

...