10

潜在的に大きな画像を表示するために WebView を使用したいと思います(メモリ管理を確保するため)。テストのために、このコードを WebView にロードしています

<head></head>
<body>
    <img alt="test" src="file:///android_asset/cute-cat-sleeping.jpg">
</body>

問題は、それを「そのまま」Webにロードした場合です。WebView は、画像の最初の寸法が画面に収まるまでズームアウトすることしかできません。この例では、画像の高さが完全に WebView に表示され、それ以上のズームは許可されません。

ズームなし setUseWideViewPort

ご覧のとおり、このモードではグローバル イメージを正しく表示できませんが、イメージをズームすると、右隅と下隅の動作はここでわかるように正しくなります。

正しいズーム表示

だから私は(WebView).getSettings().setUseWideViewPort(true)を試しましたが、結果は画像の幅よりもズームアウトできるということです

setUseWideViewPort を使用

また、右下の境界線でズーム動作が正しくありません。

setUseWideViewPort でズーム

要約: 可能な最大ズームアウトを imageWidth=webview width にして、2 番目の画像のようにズーム動作をしたいと思います:

ここに画像の説明を入力

完全かつ/または有用な回答が報奨金になります

編集: Vinayak.B の報奨金が開かれました

4

4 に答える 4

25

ビューポート メタデータを使用すると、これを行うのに役立つ場合があります

ビューポートは、Web ページが描画される領域です。ビューポートの可視領域は画面のサイズと一致しますが、ビューポートには Web ページで使用できるピクセル数を決定する独自の寸法があります。

以下も試してみてください

WebSettings settings = webView.getSettings();
settings.setUseWideViewPort(true);
settings.setLoadWithOverviewMode(true);
于 2012-04-19T10:58:12.000 に答える
6

Html ファイルを Webview にロードし、画像をアセット フォルダーに配置し、Html を使用してその画像ファイルを読み取ります。

<htm>
  <table>
   <tr>
         <td>
           <img src="cat.gif" width="100%" alt="Hello">
         </td>
   </tr>
</table>
</html>

そのHtmlファイルをWebviewにロードします

webview.loadUrl("file:///android_asset/abc.html"); 

または別の方法

LinearLayout を使用する場合は、色またはリソースの背景パラメーターを使用できます。

そのため、main.xml ファイルには webview が含まれています。あなたは単に追加しました

android:background="@+drawable/backgroundmain"

そして使う

   web.setBackgroundColor(0);

背景画像が見えるように Web ビューを透明にします。

于 2012-04-19T10:18:50.537 に答える
4

これが解決策です。HTMLコードでimgタグの幅を100%に設定し、loadDataWithBaseURL(null, htnlString, "text/html", "UTF-8", null);メソッドを使用してWebビューにロードします。

このコードを試してください

String htnlString = "<!DOCTYPE html><html><body style = \"text-align:center\"><img src=\"http://shiaislamicbooks.com/books_snaps/UR335/1.jpg\" alt=\"pageNo\" width=\"100%\"></body></html>";
yourWebView.loadDataWithBaseURL(null, htnlString, "text/html", "UTF-8", null);
于 2013-01-10T08:25:22.130 に答える