如何在Android Studio中添加字体?已添加字体系列但代码调用报错
Android Studio 添加自定义字体及调用报错排查
一、调用字体报错的常见排查点
- 资源ID找不到:字体文件名必须是小写字母+下划线(不能有大写、空格、特殊字符),且必须放在
res/font目录下。重命名后点击Sync Now同步项目,再重新引用R.font.xxx。 - 代码引用错误:检查是否导入了项目包下的
R类(不是android.R),用ResourcesCompat.getFont()替代直接Typeface.create()来兼容低版本;如果用assets方式,确认路径和文件实际位置一致(比如"fonts/my_font.ttf")。 - 字体文件损坏:重新下载字体文件,替换项目中的对应文件,避免复制过程中文件损坏。
二、添加自定义字体的两种常用方法
方法1:res/font目录(推荐,Android 8.0+原生支持,低版本兼容)
- 右键
res目录 → 新建 → Android Resource Directory,Resource type选择font,创建font文件夹。 - 将
.ttf/.otf格式的字体文件复制到font目录,文件名改成小写+下划线(比如opensans_regular.ttf)。 - XML布局中调用:
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:fontFamily="@font/opensans_regular"/> - 代码中调用(全版本兼容):
TextView textView = findViewById(R.id.target_text); Typeface customFont = ResourcesCompat.getFont(this, R.font.opensans_regular); textView.setTypeface(customFont);
方法2:assets目录(兼容所有Android版本)
- 右键
main目录 → 新建 → Folder → Assets Folder,创建assets文件夹。 - 在
assets下新建fonts子文件夹,把字体文件放入其中(文件名建议规范命名)。 - 代码中调用:
TextView textView = findViewById(R.id.target_text); Typeface customFont = Typeface.createFromAsset(getAssets(), "fonts/opensans_regular.ttf"); textView.setTypeface(customFont);
三、批量添加字体的小技巧
- 批量添加时直接把所有合规的字体文件复制到对应目录即可,无需额外配置。
- 可以在
styles.xml中定义带字体的样式,减少重复代码:
布局中直接引用:<style name="RegularTextStyle"> <item name="android:fontFamily">@font/opensans_regular</item> <item name="android:textSize">14sp</item> <item name="android:textColor">@color/black</item> </style>style="@style/RegularTextStyle"
内容的提问来源于stack exchange,提问作者Dhruv Purohit
相关产品推荐
相关产品推荐

