Oreo不支持字体

时间:2018-05-26 09:40:51

标签: android fonts android-8.0-oreo

我有一个应用程序,其中我有一个名为“Crilee”的字体,它在其他设备中运行完美,但在android中没有Oreo版本。我使用settypeface()来设置字体。我能否知道Oreo版本以及某些设备中不支持某些字体的原因?

2 个答案:

答案 0 :(得分:2)

Android 8.0(API级别26)引入了一项新功能Fonts in XML,可让您将字体用作资源。

将字体文件添加到 res 目录下的 font 文件夹中。

enter image description here

然后,在 font 文件夹下创建一个字体系列xml文件 将每个字体文件,样式和权重属性包含在<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);

注意:要在运行 Android 4.1(API级别16)及更高级别use the Support Library 26的设备上使用字体XML功能。

答案 1 :(得分:1)

我遇到了完全相同的问题,并修复了将ttf文件上传到https://everythingfonts.com/font-face并使用此网站使用生成的ttf文件的问题。 它神奇地工作。如果有人对转换的类型有更多的了解,那么可以分享。