在Android 4.2中加载自定义字体的问题(API 17)

时间:2013-03-04 07:43:39

标签: android-webview

我有一个静态html文件“myhtml.html”存储在我的assets / html /目录中,这个html加载自定义字体(存储在assets / fonts /下),如下所示:

<style type="text/css">
    @font-face {
        font-family: 'MyFont';
        src: url('file:///android_asset/fonts/myfont.ttf');
    }
</style>

我使用以下代码加载此html:

String html = getHtml(); // This method loads the myhtml.html from asset. This loads properly.
WebView webView = (WebView) findViewById(R.id.webbox);
WebSettings webSettings = webView.getSettings(); 
webSettings.setDefaultTextEncodingName("utf-8");
webSettings.setFixedFontFamily("fonts/myfont.ttf");
webView.loadDataWithBaseURL("file:///android_asset/", html, "text/html", "UTF-8", null);

此代码适用于除Android 4.2(API 17)之外的所有Android版本。

在Android 4.2中,加载了HTML,但未加载自定义字体。

3 个答案:

答案 0 :(得分:2)

我认为这是一个错误。我提交了https://code.google.com/p/android/issues/detail?id=54516

如果有人不同,请纠正我。此外,如果这个错误困扰你,请加注它以获得更多关注。

答案 1 :(得分:1)

请使用(svg字体)。它对我有用

答案 2 :(得分:0)

我有同样的问题。改变

webView.loadDataWithBaseURL("file:///android_asset/", html, "text/html", "UTF-8", null);

webView.loadDataWithBaseURL("http://example.com", html, "text/html", "UTF-8", null);

解决了这个问题。