我正在尝试在我的网络视图中显示一个本地图像:
String data = "<body>" + "<img src=\"file:///android_asset/large_image.png\"/></body>";
webview.loadData(data, "text/html", "UTF-8");
此代码不显示任何内容,而是:
webview.loadUrl("file:///android_asset/large_image.jpg");
这一个工作,但我需要有复杂的网页,而不仅仅是一张图片。
有什么想法吗?
发布于 2011-05-26 14:17:54
在Webview中加载Html文件,并将图像放在资源文件夹中,然后使用Html读取该图像文件。
<html>
<table>
<tr>
<td>
<img src="abc.gif" width="50px" alt="Hello">
</td>
</tr>
</table>
</html>
现在在Webview中加载该Html文件
webview.loadUrl("file:///android_asset/abc.html");
发布于 2012-05-26 14:46:30
您也可以尝试
String data = "<body>" + "<img src=\"large_image.png\"/></body>";
webView.loadDataWithBaseURL("file:///android_asset/",data , "text/html", "utf-8",null);
发布于 2012-01-25 17:56:37
一种方便的方法(经常被遗忘)是在HTML内容中使用base64嵌入图像。这也适用于移动Webkit浏览器(IOS、Android..)。
使用此方法的要点是,您可以在HTML内容中嵌入图像,而不是使用从webview到受限文件系统的图像链接。
<img src="data:image/jpg;base64,xxxxxxxxxxxxxxxxxxxxxxxxxxxx"/>
xxxxx = base64 encoded string of images bytes
如果您想从文件系统中提供(base64嵌入式)图像数据,例如:
1)在安卓系统中使用ContentProvider -它将提供base64格式的图像字符串。
<img src="content://.............."/>
2)或者你可以使用JSOUP或类似的DOM解析器对HTML进行预处理(在将其设置为webview之前),并使用正确的base64编码图像调整图像源。
这种方法的缺点是将图像转换为base64字符串的开销,当然也包括将更大的HTML数据发送到webview。
https://stackoverflow.com/questions/6127696
复制相似问题