web-dev-qa-db-ja.com

WebView内にWebページのコンテンツを収める(Android)

簡単な質問。

ウェブビューのコンテンツを拡大して、ウェブページ全体が表示されるようにしています。つまり、スクロールしません。私はドキュメントを調べましたが、ズームコントロールと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);

これは私がやろうとしていることに代わるもののようですが、十分にズームすることはできません。

29
OVERTONE

そのため、人々は将来これをチュートリアルとして使用できます。

ズームイン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の場合、ビューポートは同じサイズになります)

104
OVERTONE

私は上記のすべての方法を試しましたが、私の場合、私が知るまで何も機能しませんでした:

   <meta name="viewport" content="user-scalable=no"/>

htmlファイル内のこの行を削除するか、user-scalable = yesを変更するだけで、すべて正常になります。このクレイジーなラインを見つけるためにほぼ1日かかりました。

10