我有一个简单的网页浏览:
<WebView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/webview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
这就是这样称呼的:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
WebView myWebView = (WebView) findViewById(R.id.webview);
myWebView.loadUrl("http://example.com");
}
问题是我尝试渲染的网站没有进入响应模式。宽度超出了屏幕,导致我滚动。
我尝试过宽度,包括:fill_parent,match_parent和wrap_content,但都没有。
如何才能使网页呈现自适应,保持在屏幕范围内而不会水平滚动?
答案 0 :(得分:13)
您缺少一些使WebView更像移动浏览器的设置调用:
myWebView.getSettings().setUseWideViewPort(true);
myWebView.getSettings().setLoadWithOverviewMode(true);
您也可以选择启用缩放缩放:
myWebView.getSettings().setSupportZoom(true);
myWebView.getSettings().setBuiltInZoomControls(true);
myWebView.getSettings().setDisplayZoomControls(false);
正如@Hylianpuffball正确指出的那样,您的网站应该使用<viewport>
标签来控制其展示。
答案 1 :(得分:0)
我已经找到了使用setScale正确渲染webview的最佳方法:
webView.setInitialScale((int) (getScale());
是getScale方法使用这个算法来计算屏幕大小:
metrics.density * 10
然后你可以用一个小于1.5的值来使用比例因子来微调它
答案 2 :(得分:0)
错误显示在行中
webView.setInitialScale((int)(getScale());