簡単な質問。
ウェブビューのコンテンツを拡大して、ウェブページ全体が表示されるようにしています。つまり、スクロールしません。私はドキュメントを調べましたが、ズームコントロールとsetinitialscaleからメソッドサイドを見つけることができません。
この場合のsetinitialscaleの問題は、サイトごとに動作が異なることです。
例:1:wikipediaは期待どおりにロードされ、ズームアウトは十分に大きくなります。 2:ただし、Googleはページの中央のみを表示します。
私が持っているコードスニペットはこちら
test1 = (WebView) findViewById(R.id.webview_test_1);
test2 = (WebView) findViewById(R.id.webview_test_2);
test3 = (WebView) findViewById(R.id.webview_test_3);
test1.getSettings().setJavaScriptEnabled(true);
test2.getSettings().setJavaScriptEnabled(true);
test3.getSettings().setJavaScriptEnabled(true);
test1.setInitialScale(12);
test2.setInitialScale(12);
test3.setInitialScale(12);
test1.loadUrl("http://developer.Android.com/resources/tutorials/views/hello-tablelayout.html");
test2.loadUrl("http://www.wikipedia.org/");
test3.loadUrl("http://www.google.com");
test1.getSettings().setDefaultZoom(ZoomDensity.FAR);
これは私がやろうとしていることに代わるもののようですが、十分にズームすることはできません。
そのため、人々は将来これをチュートリアルとして使用できます。
ズームインAndroidとページのフィッティングを処理する方法はたくさんあります。時々かなり気まぐれになることがあり、他の方法よりもうまく機能する方法もあります。
ほとんどの人にとって、これを使うだけです:
WebView x;
x.setInitialScale(1);
これが可能なファーセットズームです。しかし、一部のサイトでは純粋にpureいように見えます。
これは私が見つけた2番目のバージョンでした
test1.getSettings().setDefaultZoom(ZoomDensity.FAR);
それはニースはずっとずっとズームアウトしているように見えるが、それでも私が探していたものではないようです。
そして今、私が持っている最終的な解決策です。
x.getSettings().setLoadWithOverviewMode(true);
x.getSettings().setUseWideViewPort(true);
基本的にこれらが行うことは、このような別の質問で回答されます。
setLoadWithOverviewMode(true)
完全にズームアウトされたWebViewをロードします
setUseWideViewPort(true)
Webviewに通常のビューポート(通常のデスクトップブラウザーなど)を作成しますが、falseの場合、Webviewのビューポートはそれ自体のサイズに制限されます(したがって、webviewが50px * 50pxの場合、ビューポートは同じサイズになります)
私は上記のすべての方法を試しましたが、私の場合、私が知るまで何も機能しませんでした:
<meta name="viewport" content="user-scalable=no"/>
htmlファイル内のこの行を削除するか、user-scalable = yesを変更するだけで、すべて正常になります。このクレイジーなラインを見つけるためにほぼ1日かかりました。