WebViewにURLをロードして、画面に合わせてサイズを変更することはできますか?つまり、ユーザーがスクロールする必要がないように、Webページを小さくしたいのです。これは可能ですか?
10 に答える
同じレイアウトアルゴリズムを設定することもできます.それは私にとってはうまくいきました.
webview.getSettings().setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN);
初期スケールを1に設定します。次に、画面全体にズームインします。これが本当に背の高いWebサイト(たとえば、コメントがたくさんあるブログ投稿)でどのように機能するかはテストしていませんが、標準のWebページを備えたDroidXおよびHTCAriaで機能しています。
WebView.setInitialScale(1);
さまざまなWebページでテストを続けますが、これまでのところ、これがこの問題に対する最善の解決策です。
編集:Droid XとAriaの両方でわいせつに長いWebページでテストし、両方で肯定的な結果を得ました。初期スケールを0に設定すると、すべてがオフになり、初期スケールが100になるようです。これらの結果に満足しています。これが、この問題に苦しんでいる他の人に役立つことを願っています。
wb.getSettings().setLoadWithOverviewMode(true);
wb.getSettings().setUseWideViewPort(true);
webview_settings.setLoadWithOverviewMode(true);
webview_settings.setUseWideViewPort(true);
webview_settings.setBuiltInZoomControls(true);
WebView.zoomOut()
戻るまで繰り返し呼び出してみましたfalse
か?
また、使用したいこの手法は、Web ページが非常に短いことに依存していることにも注意してください。ページが長く、画面全体に収まるようにズームアウトする場合、ユーザーは非常に優れた視力を必要とします! ;)
次のようにして、ページ全体をビューに含めることができました。最初に幅と高さを wrap_content に設定します。次に、初期スケールを次のように設定します。
WebView webview = (WebView) currentActivity.findView(R.layout.web_view, R.id.webview);
webview.setInitialScale(1);
これにより、幅を読み取り可能なフォントを表示するために必要な最小値に保ち、次の操作を行うことで毎回 y 座標に沿ってスクロールできることがわかりました。まず、高さと幅の両方を wrap_content に設定します。次に、次のようにコードでズーム密度をはるかに設定します。
WebView webview = (WebView) currentActivity.findView(R.layout.web_view, R.id.webview);
webview.getSettings().setDefaultZoom(ZoomDensity.FAR);
ほとんどの場合、これがおそらくより良い解決策です。次の Web ページ全体を表示すると、フォントがどれだけ小さくなるかを考えてみてください。
webview.setInitialScale(number);
'number'が大きいほど、ページが拡大されます。小さい数字(10など)から始めて、好みに合わせて調整します
このコードを使用して、画面に応じてWebビューのサイズを変更します。
setScrollContainer(false);
前述のように、ズームアウトしすぎると、コンテンツの読みやすさが低下するため、ユーザーは望んでいません。
ズーム コントロールを設定してみることをお勧めしますが、2.1 で機能するかどうかはわかりません。
webview.getSettings().setBuiltInZoomControls(true);
ユーザーにズームレベルを変更するコントロールを与えているので、これで問題が解決することを願っています。
WebView の両方のディメンションに対して WRAP_CONTENT を使用してダイアログでこれを機能させましたが、残念ながら、Web ページが大きくなりすぎると、WebView が他のすべてのウィジェットを画面から押し出してしまいます。
Android のレイアウト システムは非常に直感的ではありません。