我有一个建立在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");