[使用Typeface.createFromAsset(getAssets(), "fonts/myfont.ttf")
或使用mContext.getResources().getFont(R.font.myfont)
的字体资源创建android字体时,在两种情况下,都可以通过myView.setTypeface(myTypeface)
按预期应用字体。
但是使用Typeface.createFromFile("/path/to/myfont.ttf")
从模拟的sdcard加载相同的字体文件会成功创建Typeface
对象,但设置字体无效,并且视图将使用默认字体显示。传递Font
实例而不是字符串不会更改任何内容。
为什么会这样,有没有办法使它正常工作?
读取外部存储is granted和文件的权限可由应用程序访问和读取。
我怀疑问题是您指向字体文件的直接路径。因为在Android上它可能非常复杂,所以我建议您尝试以下操作:
File file = new File(Environment.getExternalStorageDirectory(), filename);
Typeface tf = Typeface.createFromFile(file);