我试图将WebView
的html设置为as;
"<html>" +
"<head>" +
"<meta http-equiv=\"content-type\" content=\"text/html;\" charset=\"UTF-8\">" +
"<style type=\"text/css\">" +
"@font-face {" +
"font-family: 'SourceSansPro Regular'; " +
"src: url('file:///android_asset/fonts/SourceSansPro-Regular.ttf' +
// "/android_asset/fonts
"/SourceSansPro-Regular.ttf');" +
"} " +
"body {" +
"font-family: 'SourceSansPro Regular';" +
// "color:f00;" +
"}" +
"</style> " +
"</head> " +
"<body>" +
" My Html Data"+
"</body>" +
"</html>";
但是没有应用字体。如果我在assets文件夹中创建一个html文件,该字体应用得很好。但是我需要动态设置身体,所以不能这样使用。
答案 0 :(得分:4)
使用webview网络设置,您可以设置webview的默认字体系列
WebSettings webSettings = myWebView.getSettings();
webSettings.setStandardFontFamily("Roboto-Light");
//如果是系统字体,则从资产或样式解析字体系列,如下所示,
int[] attrs = { android.R.attr.fontFamily };
TypedArray a = obtainStyledAttributes(R.style.myFontStyle, attrs);
String fontfamily = a.getString(0);
// Main
webSettings.setStandardFontFamily(fontfamily);
注意: 即使您使用此API:setStandardFontFamily指定字体系列webview将优先考虑来自服务器的字体(html页面)
<强>例如强>
如果html页面没有指定任何字体,那么它将采用这种动态 字体系列。
2.html指定的字体不可用,然后它将采用webview中的动态字体
除此之外,服务器页面字体系列的优先级不是动态的。