10

我想使用 WebView 来显示可能很大的图像(以便抓住它的内存管理)。对于测试,我在 WebView 中加载此代码

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

问题是,如果我“按原样”将其加载到网络中。WebView 只允许缩小,直到图像的第一维适合屏幕。在此示例中,图像高度完全显示在 WebView 中,然后不再允许缩放:

没有缩放没有 setUseWideViewPort

如您所见,此模式不允许正确显示全局图像,尽管缩放图像时右下角的行为是正确的,如您在此处看到的

正确的缩放显示

所以我尝试了(WebView).getSettings().setUseWideViewPort(true),结果我可以缩小超过图像的宽度

使用 setUseWideViewPort

并且右下角的缩放行为不正确:

使用 setUseWideViewPort 进行缩放

总结:我希望最大缩小可能是 imageWidth=webview 宽度和缩放行为,如第二张图像:

在此处输入图像描述

完整和/或有用的答案将被赏金

编辑:为 Vinayak.B 开放赏金

4

4 回答 4

25

使用视口元数据可以帮助您做到这一点

视口是绘制网页的区域。尽管视口的可见区域与屏幕的大小相匹配,但视口有自己的尺寸,这些尺寸决定了网页可用的像素数

也试试下面

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

在 Webview 中加载 Html 文件并将图像放入资产文件夹并使用 Html 读取该图像文件。

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

现在在 Webview 中加载该 Html 文件

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

或者另一种方式

如果您使用 LinearLayout,则可以采用可以是颜色或资源的背景参数。

所以在 main.xml 文件中包含 webview。你只是添加了一个

android:background="@+drawable/backgroundmain"

并使用

   web.setBackgroundColor(0);

使 webview 透明以查看背后的背景图像。

于 2012-04-19T10:18:50.537 回答
4

这是解决方案在 HTML 代码中将 img 标签宽度设置为 100%,然后使用loadDataWithBaseURL(null, htnlString, "text/html", "UTF-8", null);方法将其加载到您的 webview 中

试试这个代码

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 回答
0

编辑您的 Web 视图:

WebSettings settings = webview.getSettings();
settings.setJavaScriptEnabled(true);
settings.setUseWideViewPort(true);
settings.setLoadWithOverviewMode(true);
于 2018-04-02T12:59:53.887 回答