如何在font_family.xml中设置自定义粗体字体?fontStyle仅含normal/italic
如何在Android的font_family.xml中添加自定义粗体字体
你提到的点很准确:Android的fontStyle属性确实只有normal和italic两个可选值——因为这个属性仅用于控制字体的倾斜样式,而粗体是通过fontWeight属性来定义的,这是很多开发者容易混淆的点。
下面是补全后的完整font_family.xml示例,帮你正确配置粗体字体:
<?xml version="1.0" encoding="utf-8"?> <font-family xmlns:android="http://schemas.android.com/apk/res/android"> <!-- 常规字重的常规字体 --> <font android:fontStyle="normal" android:fontWeight="400" android:font="@font/lobster_regular" /> <!-- 常规字重的斜体字体 --> <font android:fontStyle="italic" android:fontWeight="400" android:font="@font/lobster_italic" /> <!-- 粗体字重的常规字体(这就是你要的自定义粗体) --> <font android:fontStyle="normal" android:fontWeight="700" android:font="@font/lobster_bold" /> <!-- 可选:粗体字重的斜体字体,如果你的字体包有这个样式的话 --> <font android:fontStyle="italic" android:fontWeight="700" android:font="@font/lobster_bold_italic" /> </font-family>
核心要点解释:
fontWeight的取值范围是100-900,行业通用的对应关系是:- 400 = 常规(Regular)
- 700 = 粗体(Bold)
- 当你在布局中设置
android:textStyle="bold",或者在代码中调用setTextStyle(Typeface.BOLD)时,系统会自动匹配fontWeight="700"的字体条目;如果没有对应权重的字体,系统会自动对常规字体进行伪加粗,但效果远不如使用原生粗体字体文件。 - 记得把你的粗体字体文件(比如
lobster_bold.ttf/.otf)放到res/font目录下,确保文件名和android:font属性的值一致。
这样配置后,你的字体家族就能正确响应粗体样式的需求了。
内容的提问来源于stack exchange,提问作者Khemraj Sharma
相关产品推荐
相关产品推荐

