首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >webview中的Android本地图像

webview中的Android本地图像
EN

Stack Overflow用户
提问于 2011-05-26 00:25:12
回答 8查看 91.7K关注 0票数 59

我正在尝试在我的网络视图中显示一个本地图像:

 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");

这一个工作,但我需要有复杂的网页,而不仅仅是一张图片。

有什么想法吗?

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 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");  
票数 69
EN

Stack Overflow用户

发布于 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);
票数 50
EN

Stack Overflow用户

发布于 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。

票数 28
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6127696

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档