2012-01-29 6 views
24

簡単な質問。webviewの中にウェブページコンテンツを入れる(Android)

ウェブページ全体が表示されるようにウェブビューのコンテンツを拡大しようとしています。すなわちスクロールしない。私はドキュメントを見てきましたが、ズームコントロールとsetinitialscaleからメソッドを除いて見つけることができません。

この場合、setinitialscaleの問題は、サイトごとに異なる動作をすることです。

例: 1:ウィキペディアは、ズームで予想通りに読み込みます。 2:ただし、Googleではページの中心部分のみを表示します。

HERESにコードスニペットは、私が

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); 

を持っているこれは私がやろうとしているが、私はそれが十分にズームインし得るカント何の代替のようです。

+0

これでwebviewにページを収めることができます – Ravi

答えて

95

だから人々はこれを将来的にチュートリアルとして使うことができます。

アンドロイドとフィッティングページでズームを処理する方法はたくさんあります。それは時々かなり気質が良く、いくつかの方法は他の方法よりも優れています。

ほとんどの人にとって、ただ、これを使用する:

WebView x; 

x.setInitialScale(1); 

これが可能furthesetズームです。しかし、いくつかのサイトでは、純粋にUGLYに見えます。

これは、私はちょうど私が探していたものをたくさんのための十分をズームアウトが、まだないように思われるよりも、すべての素敵なオールラウンダー厥

test1.getSettings().setDefaultZoom(ZoomDensity.FAR); 

を見つけ番目のバージョンでした。

そして今私が持っている最終的な解決策を紹介します。

x.getSettings().setLoadWithOverviewMode(true); 
x.getSettings().setUseWideViewPort(true); 

基本的にこれらのことは、このような別の質問で回答されます。

setLoadWithOverviewMode(true) 

完全

setUseWideViewPort(true) 

をズームアウトのWebViewは、WebViewのは、それ自身の寸法に制約ビューポートを持つことになります時に偽ながらWebViewのは、(例えば、通常のデスクトップブラウザなど)通常のビューポートを持って作りロード

+0

誰かがこれをうまく言えば正しいものとして受け入れます。私自身の答えをマークすることに反対ですが、私は他の人のチャンスを与えるでしょう – OVERTONE

+2

私のために働く。おかげで! – iRunner

+0

+1このサイトでこれまで見つかったこれらの設定の最善の説明 –

10

(WebViewのビューポートが同じサイズになりますは50pxは50px *である場合ので)私は上記のすべての方法を試してみたが、私が見つけたまで私の場合は何も働いていない:

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

この行をhtmlファイルから削除するか、単にuser-scalable = yesに変更しても問題ありません。 このクレイジーなラインを見つけるために私はほぼ一日を取った。

+0

どこでこれを変更または追加できますか? –

+0

これはhtmlファイルのメタタグです。 このhtmlファイルを開いて、ヘッダー部分で直接編集することができます。 –

+0

すばらしい答え。助かりました。 ; - * – Sarasranglt