我正在尝试更改我的webview元素的字体。我创建了一个网页并放置了除此之外的.ttf文件。我打开页面看起来很好。现在我想使用webview来显示它。由于我使用的是twitter bootstrap,我使用loadUrl
方法加载页面。
页面加载但字体错误。在我的CSS样式文件中,我尝试了这些(我的html文件位于'www'目录中的资产文件夹中,我也将字体放在该文件夹中):
@font-face {
font-family: 'Far.TitrDF';
src: url('file:///android_asset/www/Far_TitrDF.ttf');
}
@font-face {
font-family: 'Far.TitrDF';
src: url('Far_TitrDF.ttf');
}
我还尝试在assets文件夹中创建一个'fonts'目录并将我的字体放在那里并尝试这些:
@font-face {
font-family: 'Far.TitrDF';
src: url('file:///android_asset/fonts/Far_TitrDF.ttf');
}
@font-face {
font-family: 'Far.TitrDF';
src: url('../fonts/Far_TitrDF.ttf');
}
但没有成功。有趣的是,其他一切,如样式,都显示得很好。你能告诉我这里我做错了什么吗?
答案 0 :(得分:1)
改变网页视图字体的坏主意,如果您的数据只是文字首选方式,则使用TextView和SetTypeface方法......
但你仍然可以通过在css中混合使用html和css以及font命令来使用自定义字体进行Web视图,但字体必须是web字体而不是任何字体,而字体url中没有子文件夹
答案 1 :(得分:0)
String data="<html><head><meta http-equiv=\"content-type\" content=\"text/html;\" charset=\"UTF-8\"><style>"+
"@font-face {"+
"font-family: \"MyFont\";"+
"src: url('file:///android_asset/fonts/normal.otf');"+
"font-weight:bold !important;"+
"}"+
"@font-face {"+
"font-family: \"MyFontBold\";"+
"src: url('file:///android_asset/fonts/bold.otf');"+
"font-weight:bold !important;"+
"}"+
"@font-face {"+
"font-family: \"MyFontItalic\";"+
"src: url('file:///android_asset/fonts/Italic.otf');"+
"font-weight:bold !important;"+
"}"+
"@font-face {"+
"font-family: \"BoldItalic\";"+
"src: url('file:///android_asset/fonts/BoldItalic.otf');"+
"font-weight:bold !important;"+
"}"+
"strong { font-family:\"MyFontBold\"; }"+
"em {font-family :\"MyFontItalic\";}"+
"body { font-family:\"MyFont\"; }"+
"body strong em {font-family:\"BoldItalic\";}"+
"body em strong{font-family:\"BoldItalic\";}"+
"</style>"+
"</head>"+
"<body>"+your description String+ "</body></html>";
web.loadDataWithBaseURL("file:///android_asset/", data, "text/html",
"UTF-8", "null");