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