在 Android 的 WebView 中适配不同屏幕尺寸,通常从 HTML/CSS、WebView 配置、视口(viewport)、图片与布局 几个方面入手。下面给你一套比较完整、实用的方案。
WebSettings settings = webView.getSettings();
settings.setJavaScriptEnabled(true);
settings.setSupportZoom(true);
settings.setBuiltInZoomControls(true);
settings.setDisplayZoomControls(false); // 隐藏缩放按钮
settings.setUseWideViewPort(true);
settings.setLoadWithOverviewMode(true);
✅ 关键点:
setUseWideViewPort(true):按网页原始宽度加载setLoadWithOverviewMode(true):自动缩放到屏幕宽度在网页 <head> 中一定要加:
<meta name="viewport"
content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
说明:
width=device-width:使用设备宽度initial-scale=1.0:初始不缩放user-scalable=no:禁止用户缩放(看需求)body {
font-size: 16px;
width: 100%;
}
.container {
width: 100%;
padding: 0 16px;
box-sizing: border-box;
}
.container {
display: flex;
flex-wrap: wrap;
}
img {
max-width: 100%;
height: auto;
}
rem + JS 动态设置(常见)<script>
function setRem() {
var w = document.documentElement.clientWidth;
document.documentElement.style.fontSize = w / 10 + 'px';
}
setRem();
window.onresize = setRem;
</script>
.box {
width: 5rem; /* 50% 屏宽 */
}
webView.setFitsSystemWindows(true);
<activity
android:configChanges="orientation|screenSize"
android:name=".WebActivity"/>
避免 WebView 重新加载。
❌ 只设置 WebView 宽高 match_parent 不够
❌ 忘记加 viewport
❌ 使用固定 px 布局
❌ WebView 缩放开启但页面不允许缩放
✅ WebView:
settings.setUseWideViewPort(true);
settings.setLoadWithOverviewMode(true);
settings.setJavaScriptEnabled(true);
✅ HTML:
<meta name="viewport" content="width=device-width, initial-scale=1.0">
✅ CSS:
img { max-width:100% }如果你愿意,可以告诉我:
我可以直接给你一套 可复制的完整代码模板。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。