Android - loadDataWithBaseURL

时间:2017-04-05 14:11:08

标签: java android webview

我正在使用webview在屏幕上显示html页面。我的html页面包含图像标记,其中所有图像都存储在具有子文件夹的android资源文件夹中

  
    

资产/ userfile的/图像/ 01.JPG     资产/ userfile的/图像/ 04.jpg

  

我在java类

中使用以下代码加载html
String htmlFilename = "sample.html";
AssetManager mgr = getBaseContext().getAssets();
try {
        InputStream in = mgr.open(htmlFilename, AssetManager.ACCESS_BUFFER);
        String htmlContentInStringFormat = StreamToString(in);
        htmlWebView.loadDataWithBaseURL("file:///android_asset", htmlContentInStringFormat, "text/html", "utf-8", null);

    } catch (IOException e) {
        e.printStackTrace();
    }

我的HTML代码是

<p><img alt="Comet 67P" src="/userfile/images/01.jpg" style="float:right; height:239px; width:300px" /></p>

<p><img alt="Comet 67P" src="/userfile/images/04.jpg" style="float:right; height:239px; width:300px" /></p>

但是在webview中没有加载图像。

相反,如果我替换java代码

 htmlWebView.loadDataWithBaseURL("file:///android_asset/userfile/images/", htmlContentInStringFormat, "text/html", "utf-8", null);

如果将html更改为

<p><img alt="Comet 67P" src="01.jpg" style="float:right; height:239px; width:300px" /></p>

<p><img alt="Comet 67P" src="04.jpg" style="float:right; height:239px; width:300px" /></p>

然后它正常工作.. &#34; / userfile的/图像/&#34;是从服务器动态生成的,因此我不想将其作为baseURL

1 个答案:

答案 0 :(得分:0)

你有没有试过这样的事情:

htmlWebView.loadDataWithBaseURL(null, htmlContentInStringFormat, "text/html", "utf-8", null);

<p><img alt="Comet 67P" src="file:///android_asset/userfile/images/01.jpg" style="float:right; height:239px; width:300px" /></p>

<p><img alt="Comet 67P" src="file:///android_asset/userfile/images/04.jpg" style="float:right; height:239px; width:300px" /></p>