将图像放在webview中并使其适合宽度

Add*_*dev 9 java android webview

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

<head></head>
<body>
    <img alt="test" src="file:///android_asset/cute-cat-sleeping.jpg">
</body>
Run Code Online (Sandbox Code Playgroud)

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

没有缩放没有setUseWideViewPort

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

正确的缩放显示

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

使用setUseWideViewPort

并且右下边框中的缩放行为不正确:

用setUseWideViewPort缩放

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

在此输入图像描述

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

编辑:Bounty为Vinayak.B开放

Vin*_*tti 25

使用Viewport元数据可以帮助您执行此操作

视口是绘制网页的区域.虽然视口的可见区域与屏幕大小相匹配,但视口有自己的尺寸,用于确定网页可用的像素数

也请尝试以下

WebSettings settings = webView.getSettings();
settings.setUseWideViewPort(true);
settings.setLoadWithOverviewMode(true);
Run Code Online (Sandbox Code Playgroud)


jud*_*ent 6

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

<htm>
  <table>
   <tr>
         <td>
           <img src="cat.gif" width="100%" alt="Hello">
         </td>
   </tr>
</table>
</html>
Run Code Online (Sandbox Code Playgroud)

现在在Webview中加载该Html文件

webview.loadUrl("file:///android_asset/abc.html"); 
Run Code Online (Sandbox Code Playgroud)

或者另一种方式

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

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

android:background="@+drawable/backgroundmain"
Run Code Online (Sandbox Code Playgroud)

并使用

   web.setBackgroundColor(0);
Run Code Online (Sandbox Code Playgroud)

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