我正在关注this official guide,并希望在我的项目中使用Poppins字体。字体已更改,但字体粗细属性似乎不起作用。
我有一个定义如下的风格:
<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>我将其应用如下:
<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:
<?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:
<?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>发布于 2021-09-09 14:16:05
你试过this answer吗?我们已经用Inter实现了它,它工作得很好,显示了正确的权重。
res/font/inter.xml
<?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
<style name="TextAppearance.Medium">
<item name="android:fontFamily">@font/inter</item>
</style>或
<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>我希望这些例子对其他人有帮助。
https://stackoverflow.com/questions/63573979
复制相似问题