android运行时异常“字体资产未找到”,用于android nougat中的.woff字体文件

时间:2017-02-20 10:50:36

标签: android-7.0-nougat woff

我正在开发一个应用程序,我需要使用.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

任何人都可以帮助我“这里有什么问题?

提前致谢 克里希纳

1 个答案:

答案 0 :(得分:1)

Android 7.0和7.1中的WOFF支持似乎至少部分被破坏,这些字体可以从包assets目录中卸载。如果您支持Nougat,最好的选择是获得字体的TTF或OTF版本并使用它们。