首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >可下载字体的字体粗细不适用于android

可下载字体的字体粗细不适用于android
EN

Stack Overflow用户
提问于 2020-08-25 15:28:29
回答 2查看 953关注 0票数 2

我正在关注this official guide,并希望在我的项目中使用Poppins字体。字体已更改,但字体粗细属性似乎不起作用。

我有一个定义如下的风格:

代码语言:javascript
复制
<style name="TextAppearance.SectionTitle" parent="TextAppearance.MaterialComponents.Headline4">
    <item name="android:textSize">16sp</item>
    <item name="android:textColor">#223263</item>
    <item name="android:fontWeight">700</item>
    <item name="fontWeight">700</item>
</style>

我将其应用如下:

代码语言:javascript
复制
<TextView
    ...
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/category"
    android:textStyle="bold"
    android:textFontWeight="700"
    style="@style/TextAppearance.SectionTitle"
/>

正如你所看到的,我已经尝试了几种方法,但都还没有成功。字体的颜色和大小根据我定义的样式而变化,但粗体效果没有注册。

这是我得到的输出:

预期输出:

我的poppins.xml:

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<font-family xmlns:app="http://schemas.android.com/apk/res-auto"
    app:fontProviderAuthority="com.google.android.gms.fonts"
    app:fontProviderPackage="com.google.android.gms"
    app:fontProviderQuery="Poppins"
    app:fontProviderCerts="@array/com_google_android_gms_fonts_certs">
</font-family>

preloaded_fonts.xml:

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<resources>
  <array name="preloaded_fonts" translatable="false">
    <item>@font/poppins</item>
    <item>@font/poppins_bold</item>
  </array>
</resources>
EN

Stack Overflow用户

发布于 2021-09-09 14:16:05

你试过this answer吗?我们已经用Inter实现了它,它工作得很好,显示了正确的权重。

res/font/inter.xml

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<font-family xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">

    <font
        android:font="@font/inter_thin"
        android:fontStyle="normal"
        android:fontWeight="100"
        app:font="@font/inter_thin"
        app:fontStyle="normal"
        app:fontWeight="100" />

    <font
        android:font="@font/inter_extralight"
        android:fontStyle="normal"
        android:fontWeight="200"
        app:font="@font/inter_extralight"
        app:fontStyle="normal"
        app:fontWeight="200" />

    <font
        android:font="@font/inter_light"
        android:fontStyle="normal"
        android:fontWeight="300"
        app:font="@font/inter_light"
        app:fontStyle="normal"
        app:fontWeight="300" />

    <font
        android:font="@font/inter_regular"
        android:fontStyle="normal"
        android:fontWeight="400"
        app:font="@font/inter_regular"
        app:fontStyle="normal"
        app:fontWeight="400" />

    <font
        android:font="@font/inter_medium"
        android:fontStyle="normal"
        android:fontWeight="500"
        app:font="@font/inter_medium"
        app:fontStyle="normal"
        app:fontWeight="500" />

    <font
        android:font="@font/inter_semibold"
        android:fontStyle="normal"
        android:fontWeight="600"
        app:font="@font/inter_semibold"
        app:fontStyle="normal"
        app:fontWeight="600" />

    <font
        android:font="@font/inter_bold"
        android:fontStyle="normal"
        android:fontWeight="700"
        app:font="@font/inter_bold"
        app:fontStyle="normal"
        app:fontWeight="700" />

    <font
        android:font="@font/inter_extrabold"
        android:fontStyle="normal"
        android:fontWeight="800"
        app:font="@font/inter_extrabold"
        app:fontStyle="normal"
        app:fontWeight="800" />

    <font
        android:font="@font/inter_black"
        android:fontStyle="normal"
        android:fontWeight="900"
        app:font="@font/inter_black"
        app:fontStyle="normal"
        app:fontWeight="900" />

</font-family>

所有用于Inter字体的ttf文件也都放置在res/font中。

这是我们如何将其应用于TextView样式的示例:

res/values/styles.xml

代码语言:javascript
复制
    <style name="TextAppearance.Medium">
        <item name="android:fontFamily">@font/inter</item>
    </style>

代码语言:javascript
复制
    <style name="Whatever">
        <item name="android:layout_width">wrap_content</item>
        <item name="android:layout_height">wrap_content</item>
        <item name="android:fontFamily">@font/inter</item>
    </style>

我希望这些例子对其他人有帮助。

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63573979

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档