这是我的代码和截图,我想设置自定义字体类型,但运行时出现了“字体资源未找到”的异常错误,而字体文件在资产文件夹中。我有什么遗漏的吗?
Typeface font = Typeface.createFromAsset(getAssets(), "font/terminal.ttf");
((TextView) findViewById(R.id.weatherHeadingTV)).setTypeface(font);
这是我的代码和截图,我想设置自定义字体类型,但运行时出现了“字体资源未找到”的异常错误,而字体文件在资产文件夹中。我有什么遗漏的吗?
Typeface font = Typeface.createFromAsset(getAssets(), "font/terminal.ttf");
((TextView) findViewById(R.id.weatherHeadingTV)).setTypeface(font);
使用这个方法:
final Typeface typeface = ResourcesCompat.getFont(context, R.font.X);
ResourcesCompat
类是一个兼容的方式来检索您的资源。
文件夹名称必须为'fonts'而不是'font'
Typeface typeface = Typeface.createFromAsset(getAssets(), "fonts/" + font);
您的字体资产文件夹名称不正确。应该将文件夹命名为 fonts
而不是 font
。并更改您的代码:
Typeface font = Typeface.createFromAsset(getAssets(), "fonts/terminal.ttf");
在项目中有资产且使用AS的 alpha 版本时,常见错误。这似乎是 Android Studio 构建系统中的一个 bug。一个简单的解决方法是在运行之前清除项目,这应该可以解决您面临的问题。
我曾经遇到过同样的问题,但最终解决了。起初我认为字体文件已损坏,但实际上并不是这样。然后我以为Android Studio不支持 .ttf
文件,因为只有这些文件不能正常工作。结果发现问题并不在字体上。
解决方法:只需点击 Build > Clean project
即可。对我来说直接解决了问题。
typefaceRegular = ResourcesCompat.getFont(mContext, R.font.sarala_regular);
tv_bs_priceRange.setTypeface(typefaceRegular);
我遇到了这样的问题:Android 7+ 不接受 .woff 字体。所以我改用了 .ttf 字体。