这是我的代码和屏幕截图我正在尝试设置自定义字体字体但是当字体文件在资产文件夹中时,运行时异常发生字体资产未找到。我错过了什么吗?
Typeface font = Typeface.createFromAsset(getAssets(), "font/terminal.ttf");
((TextView) findViewById(R.id.weatherHeadingTV)).setTypeface(font);
文件夹名称必须是'fonts'而不是'font'
Typeface typeface = Typeface.createFromAsset(getAssets(), "fonts/" + font);
我遇到了Android 7+不接受.woff字体的问题。所以我切换到了.ttf字体。
对我来说,字体文件本身已损坏。我尝试了另一个让它工作。
使用此方法:
final Typeface typeface = ResourcesCompat.getFont(context, R.font.X);
我已经调查了所有的答案,但没有一个适合我。我在阅读完文档后找到了一个新的解决方案。以下是要遵循的步骤:
现在,您已准备好使用您喜欢的字体。
您的字体资源文件夹名称不正确。您应该将文件夹命名为fonts
而不是font
。还要更改您的代码:
Typeface font = Typeface.createFromAsset(getAssets(), "fonts/terminal.ttf");
如果你使用Android Gradle插件版本2.2.0-alphaX的Instant Run,这是一个已知的bug。
解决方法是关闭Instant Run直到问题得到解决。
在项目中有资产并且使用AS的alpha版本时常见错误。这似乎是Android studio构建系统中的一个错误。一个简单的解决方法是在运行之前清理项目,这应该可以解决您面临的问题。
我尝试了另一种工作正常的字体文件所以我得出结论,早期的字体文件已损坏。感谢@Miduhun MP,@ Gowtham Raj和@jagan reddy
我有同样的问题,并设法解决它。最初我认为字体文件已损坏,但事实并非如此。然后我认为Android Studio不喜欢.ttf
文件,因为它们是唯一不起作用的。事实证明,字体并没有错。
FIX:只需点击Build > Clean project
。我马上把它固定好了。
字体字体= Typeface.createFromAsset(this.getAssets(),“font / terminal.ttf”);
((TextView)findViewById(R.id.weatherHeadingTV))。setTypeface(typeface);
如果您使用AndroidAnnotations,请在app build.gradle中验证assets文件夹是否正常:ex:main / src / assets。
如果更改de font,请从设备/模拟器中卸载应用程序,然后重新运行。
码:
public static void setFontFace(Context context, TextView textView) {
Typeface type = Typeface.createFromAsset(context.getAssets(), "myfont.ttf");
textView.setTypeface(type);
}