我有一个建立在PrimeFaces之上的网站.我的问题是WebView上的内容和图像看起来比Chrome上的要大.我应该怎么做才能使WebView上的渲染与Chrome的渲染相同?
扩展似乎没有帮助,因为该网站具有响应式设计.我也尝试过wrap_content而不是fill_parent但没有成功.
更新1:
以下内容无效.我已将它们从下面的代码中排除,以保持最小化.
> WebViewClient
> ChromeViewClient
> setLoadWithOverviewmode(true)
> setUseWideViewPort(true)
更新2:
setInitialScale()无效.
MyActivity.java
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); webView = (WebView) findViewById(R.id.web_engine); webView.setWebViewClient(new WebViewClient()); webView.getSettings().setJavaScriptEnabled(true); if (savedInstanceState == null) { webView.loadUrl("http://www.primefaces.org/showcase/mobile/index.xhtml"); } }
main.xml中
<RelativeLayout xmlns:a="http://schemas.android.com/apk/res/android" a:layout_width="fill_parent" a:layout_height="fill_parent" a:background="#ffffff" a:orientation="vertical" > <WebView a:id="@+id/web_engine" a:layout_width="fill_parent" a:layout_height="fill_parent" />
解决方法
尝试:
webView.getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.TEXT_AUTOSIZING); webView.getSettings().setSupportZoom(true);
这里提到:http://developer.android.com/guide/webapps/migrating.html
完整代码:
mWebView = (WebView) mLayoutMain.findViewById(R.id.webview_main); mWebView.setWebViewClient(new WebViewClient(){ @Override public boolean shouldOverrideUrlLoading(WebView view,String url) { view.loadUrl(url); return false; } }); mWebView.getSettings().setJavaScriptEnabled(true); mWebView.getSettings().setUseWideViewPort(true); mWebView.getSettings().setLoadWithOverviewmode(true); mWebView.getSettings().setBuiltInZoomControls(true); mWebView.getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.TEXT_AUTOSIZING); mWebView.getSettings().setSupportZoom(true); mWebView.loadUrl("http://www.primefaces.org/showcase/mobile/index.xhtml");