嗨,我有一个webview,我希望它适合屏幕,这样用户不必水平或垂直滚动
我以前搜索过,很多人建议如下,但它只限制宽度,用户仍然需要垂直滚动:engine = (WebView) (findViewById(R.id.webView1)); engine.loadUrl(www.example.com); engine.getSettings().setLoadWithOverviewMode(true); engine.getSettings().setUseWideViewPort(true);
我尝试了另一种方法,使用缩放方法,但它不会工作…..我得到窗口宽度(1024像素),网页内容宽度也是1024像素! 因此缩放不起作用….有没有任何方法来获得正确的比例?
或….还有其他方式吗?….谢谢!!
// get the window width and height Point outSize = new Point(); getWindowManager().getDefaultDisplay().getSize(outSize); width = outSize.x; height = outSize.y; Log.i("Menuboard", "width: " + Integer.toString(width) + ", height: " + Integer.toString(height)); WebViewClient client = new WebViewClient() { public void onPageFinished(WebView view, String url) { int x = engine.getWidth(); int y = engine.getHeight(); Log.i("Menuboard", "web width: " + Integer.toString(x) + ", height: " + Integer.toString(y)); int scale1 = width * 100/x; int scale2 = height * 100/y; Log.i("Menuboard", "Scale1: " + Integer.toString(scale1) + ", Scale2: " + Integer.toString(scale2)); if (scale1 scale2) { engine.setInitialScale(scale2); Log.i("Menuboard", "scale2: " + Integer.toString(scale2)); } } }; engine = (WebView) (findViewById(R.id.webView1)); engine.loadUrl(string); engine.getSettings().setBuiltInZoomControls(true); engine.setPadding(0, 0, 0, 0); engine.setWebViewClient(client);
只是一些说明:
要缩放webview:
engine = (WebView) (findViewById(R.id.webView1)); engine.loadUrl(www.example.com); engine.getSettings().setBuiltInZoomControls(true); engine.setPadding(0, 0, 0, 0); engine.setInitialScale(50); // 0 - 100 where 100 is full scale
要获得窗口宽度和高度:
Point outSize = new Point(); getWindowManager().getDefaultDisplay().getSize(outSize); width = outSize.x; height = outSize.y;
使用以下方法。
webview.getSettings().setUseWideViewPort(true); webview.getSettings().setLoadWithOverviewMode(true);
要使webview扩展到整个屏幕,请在活动布局xml中添加webview,并确保将layout_width和layout_height设置为fill_parent 。 这是一个简单的例子: