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

时间:2018-06-12 12:59:44

标签: android androiddesignsupport android-typeface

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

2 个答案:

答案 0 :(得分:0)

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

首先使用您的自定义字体创建字体系列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>

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

<style name="chipText" parent="TextAppearance.MaterialComponents.Chip">
    <item name="android:textSize">14sp</item>
    <item name="android:fontFamily">@font/my_font_family</item>
</style>

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

android:textAppearance="@style/chipText"

答案 1 :(得分:0)

您的解决方案在正常的芯片视图下工作-它在TextInputLayout中仍然存在一些问题芯片。 (字体不变)

注意:屏幕旋转后自定义字体更改了,我不知道为什么

实现“ com.google.android.material:material:1.3.0-alpha01”

   <com.google.android.material.textfield.TextInputLayout
        android:layout_width="240dp"
        android:layout_height="wrap_content"
        style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
        android:layout_gravity="center"
        android:textAppearance="@style/chipText"
        android:hint="Text Field">

        <com.google.android.material.textfield.TextInputEditText
            android:id="@+id/editText"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:text="Text"
            android:textAppearance="@style/chipText"/>

    </com.google.android.material.textfield.TextInputLayout>