将HTML数据加载到WebView中,引用本地图像?

时间:2012-03-19 13:12:45

标签: android

如果我使用WebView.loadData()直接加载带有HTML文档的WebView(没有Web服务器),那么该文档是否可以引用本地图像?如果是这样我在哪里放置它们,我该如何引用它们?

或者有没有办法轻松编码和嵌入位图到HTML文档?

我需要显示包含图片的本地HTML文档,并且我希望避免设置远程服务器来提供资源。

4 个答案:

答案 0 :(得分:3)

使用此

 String html = new String();
        html = ("<html><BODY  ><table  style='margin-top:100px;'  align='center'><tr><td><img src=\""+your_image_localpath+"\" width=\""+800+"px\" height=\""+800+"px\" ></td></tr></table> </BODY></html>" );

        webView1.loadDataWithBaseURL("file:///sdcard/data/data/your_package_name/",
               html,
               "text/html",
               "utf-8",
               "");

答案 1 :(得分:3)

您是否尝试file:///android_asset/www/image.jpg作为图片src属性?如果您将html文档作为文件,那么您可以将图像放入资产中文件旁边的文件夹中。

答案 2 :(得分:0)

如果你不关心图像,你可以使用base64编码,它们只是html页面的一部分。

还有另一个线程解释了如何使用base64编码Embedding Base64 Images

答案 3 :(得分:0)

我认为这更好更清洁:

StringBuilder html = new StringBuilder();
                    html.append("<html>");
                    html.append("<head>");
                    html.append("</head>");
                    html.append("<body>");
                    html.append("<p><img style='width: 100%;' src='your_image.png' /></p>");
                    html.append("</body></html>");
                    your_webview.loadDataWithBaseURL("file:///android_asset/", html.toString(), "text/html", "UTF-8", "");