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