我正在开发一个应用程序,我需要使用.woff字体。我编写了以下代码来从.woff文件中获取字体类型face并设置为textview。
hellofont = getFont("fonts/AvenirLTStd-Black.woff");
//welcomefont = getFont ( "fonts/AvenirLTStd-Heavy.woff");
thankufont = getFont("fonts/RobotoCondensed-Bold.ttf");
TextView text1 = (TextView) findViewById(R.id.text1id);
text1.setTypeface(hellofont);
TextView text2 = (TextView) findViewById(R.id.text2id);
text2.setTypeface(thankufont);
public Typeface getFont( String fontName){
try {
Typeface content = Typeface.createFromAsset(this.getAssets(), fontName);
return content;
}
catch(RuntimeException e)
{
Toast.makeText(this,e.getMessage(),Toast.LENGTH_LONG).show();
}
return null;
}
此代码适用于Android 5.0和6.0设备。但它在Android 7.0设备上给出异常(字体资产未找到字体/ AvenirLTStd-Black.woff)。 我在android 7.0设备上测试了ttf和otf字体,它运行正常。只有woff字体才会出现此异常。
我附加了屏幕截图,其中显示了assests / fonts文件夹中的字体。 asset folder with woff fonts
任何人都可以帮助我“这里有什么问题?
提前致谢 克里希纳
答案 0 :(得分:1)
Android 7.0和7.1中的WOFF支持似乎至少部分被破坏,这些字体可以从包assets
目录中卸载。如果您支持Nougat,最好的选择是获得字体的TTF或OTF版本并使用它们。