我有一个静态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,但未加载自定义字体。
答案 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);
解决了这个问题。