在 Android WebView 里“调字体”通常有三种场景,下面分别说:
这是最常用的方式,直接改变网页的默认字号(类似浏览器里的“字体大小”)。
WebSettings settings = webView.getSettings();
settings.setDefaultFontSize(18); // 默认字体大小(像素)
settings.setDefaultFixedFontSize(16); // 等宽字体大小
✅ 适合:网页没有自己写死字体大小的情况
❌ 对 font-size: 16px; 这种固定值无效
webView.getSettings().setTextZoom(120); // 百分比,100 为默认
100 = 正常120 = 放大 20%80 = 缩小✅ 最推荐
webView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
String css = "body{font-size:18px !important;}";
String js = "javascript:(function(){" +
"var style=document.createElement('style');" +
"style.innerHTML='" + css + "';" +
"document.head.appendChild(style);" +
"})()";
view.loadUrl(js);
}
});
✅ 适合:
webView.getSettings().setAllowFileAccess(true);
HTML 中:
<style>
@font-face {
font-family: MyFont;
src: url("file:///android_asset/fonts/myfont.ttf");
}
body {
font-family: MyFont;
}
</style>
pxviewport 缩放!important 覆盖解决:
settings.setUseWideViewPort(true);
settings.setLoadWithOverviewMode(true);
| 需求 | 推荐方式 |
|---|---|
| 简单放大字体 | setTextZoom() |
| 系统级统一 | setDefaultFontSize() |
| 精确控制 | JS 注入 CSS |
| 自定义字体 | @font-face |
如果你有 具体场景(比如:微信内网页 / 自己 App / H5 页面),我可以给你更针对性的代码。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。