我想使用WebView来显示可能很大的图像(以便抓住内存管理)。 对于测试我在WebView中加载此代码
<head></head>
<body>
<img alt="test" src="file:///android_asset/cute-cat-sleeping.jpg">
</body>
问题在于,如果我“按原样”将其加载到网络中。 WebView仅允许缩小,直到图像的第一个维度适合屏幕。在此示例中,图像高度完全显示在WebView中,然后不再允许缩放:
正如您所见,此模式无法正确显示全局图像,尽管图像缩放时右下角的行为正确,如您所见
所以我尝试了(WebView).getSettings()。setUseWideViewPort(true),结果是我可以缩小比图像的宽度更多
并且右下边框中的缩放行为不正确:
总结:我希望最大缩小可能是imageWidth = webview宽度和缩放行为,如第二张图片所示:
将完成和/或有用的答案
编辑:Bounty为Vinayak.B打开了答案 0 :(得分:24)
Using Viewport Metadata可以帮助您完成此操作
视口是绘制网页的区域。虽然视口的可见区域与屏幕大小相匹配,但视口有自己的尺寸,用于确定网页可用的像素数
另请尝试以下
WebSettings settings = webView.getSettings();
settings.setUseWideViewPort(true);
settings.setLoadWithOverviewMode(true);
答案 1 :(得分: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);
使网页视图透明,以查看背后的背景图片。
答案 2 :(得分:4)
此解决方案是将HTML代码中的img标记宽度设置为100%,然后使用loadDataWithBaseURL(null, htnlString, "text/html", "UTF-8", null);
方法将其加载到您的网页视图中
试试这段代码
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);
答案 3 :(得分:0)
编辑您的Webview:
WebSettings settings = webview.getSettings();
settings.setJavaScriptEnabled(true);
settings.setUseWideViewPort(true);
settings.setLoadWithOverviewMode(true);