如何更改芯片视图的字体?

Bom*_*Bus 7 android android-typeface androiddesignsupport

我想从设计支持库更改芯片视图的字体。在我浏览它的源代码后,我发现它是通过Paint直接在ChipDrawable中绘制文本的,我找不到任何更改字体的公共方法。我应该如何尝试更改芯片视图字体?请帮忙。谢谢。

小智 24

有点晚了,但如果有人仍然感兴趣,我会发布我的解决方案。

首先使用您的自定义字体创建一个字体系列 xml。

<font-family xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <font app:fontStyle="normal" app:fontWeight="400" app:font="@font/my_custom_font"/>
</font-family>
Run Code Online (Sandbox Code Playgroud)

然后将芯片样式添加到使用您的字体系列的样式 xml:

<style name="chipText" parent="TextAppearance.MaterialComponents.Chip">
    <item name="android:textSize">14sp</item>
    <item name="android:fontFamily">@font/my_font_family</item>
</style>
Run Code Online (Sandbox Code Playgroud)

然后,当您在 xml 中创建芯片视图时,设置 textAppearance 属性:

android:textAppearance="@style/chipText"
Run Code Online (Sandbox Code Playgroud)

  • 这对我不起作用。我以编程方式加载芯片,当它首先加载默认字体时,芯片视图会闪烁,然后是我的字体。对于很多芯片来说,虽然最后的字体是正确的,但看起来并不好看。有人有类似的问题吗? (2认同)