11

我有一个静态 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,但不会加载自定义字体。

4

3 回答 3

2

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

如果有人知道不同,请纠正我。此外,如果此错误困扰您,请加注星标以获得更多关注。

于 2013-04-18T19:17:30.383 回答
1

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

于 2013-05-02T12:06:15.233 回答
0

我也有同样的问题。改变

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

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

解决了这个问题。

于 2016-10-26T15:03:58.503 回答