安卓WebView - 网页应适应设备屏幕

131

我尝试了以下方法来根据设备屏幕大小适应网页。

mWebview.setInitialScale(30);

然后设置元数据视口。

<meta name="viewport" content="width=320, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; minimum-scale=1.0; user-scalable=0;"/>
<meta name="viewport" content="width=device-width, target-densityDpi=medium-dpi"/>

但是没有任何效果,网页没有适应设备屏幕大小。

有人能告诉我如何实现吗?

22个回答

1

供参考,这是@danh32解决方案的Kotlin实现:

private fun getWebviewScale (contentWidth : Int) : Int {
    val dm = DisplayMetrics()
    windowManager.defaultDisplay.getRealMetrics(dm)
    val pixWidth = dm.widthPixels;
    return (pixWidth.toFloat()/contentWidth.toFloat() * 100F)
             .toInt()
}

在我的情况下,宽度由三个图像确定为300像素,因此:
webview.setInitialScale(getWebviewScale(300))

我花了几个小时才找到这篇帖子。谢谢!


-5
WebView webView = (WebView)findViewById(R.id.web_view);
webView.setInitialScale((int) getResources().getDimension(R.dimen._50sdp)); // getActivity(). if you are at Fragment
webView.getSettings().setLoadsImagesAutomatically(true);
webView.getSettings().setJavaScriptEnabled(true);
webView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
webView.loadDataWithBaseURL(null,here comes html content,"text/html","UTF-8", null);
webView.getSettings().setBuiltInZoomControls(true);
webView.getSettings().setSupportZoom(true);
webView.getSettings().setDisplayZoomControls(true);
webView.getSettings().setDefaultZoom(WebSettings.ZoomDensity.FAR);

请不要因为投票结果而重复发布同样的内容。 - techydesigner
请花一点时间对代码进行格式化!为什么你把它向右缩进这么多?太浪费时间了,删除一些空格吗? - Massimiliano Kraus

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接