来自string.xml的Android Webview IMG异常

时间:2012-06-11 19:10:02

标签: android webview

我正在尝试在ICS Android应用上显示本地资源目录中的图像。

png是40.png,它位于appname \ assets \ 40.png下 string.xml中的字符串是:

 <string name="p40"><img src="file:///android_asset/40.png"/></string>

以下是我用来加载IMG的代码:

              String myhtmlIMG= getResources().getString(R.string.p40);
              webView.loadData(myhtmlIMG,"text/html", null);  

当我运行时,我得到一个例外:

06-11 15:02:04.986: W/System.err(12939):    at libcore.net.http.AbstractHttpInputStream.checkNotClosed(AbstractHttpInputStream.java:68)
06-11 15:02:04.986: W/System.err(12939):    at libcore.net.http.FixedLengthInputStream.read(FixedLengthInputStream.java:41)
06-11 15:02:04.990: W/System.err(12939):    at java.io.InputStreamReader.read(InputStreamReader.java:244)
06-11 15:02:04.990: W/System.err(12939):    at java.io.BufferedReader.fillBuf(BufferedReader.java:130)
06-11 15:02:04.990: W/System.err(12939):    at java.io.BufferedReader.readLine(BufferedReader.java:354)

但是,如果我要在appname \ assets \ p40.html中创建一个html文件并包含相同的标签,我会得到图像。问题是我必须使用插入到html字符串中的动态png,因此这不是解决方案。

也许是我的报价处理?

2 个答案:

答案 0 :(得分:0)

这是一个逃避问题。尝试使用CDATA标签:

<string name="p40"><![CDATA[<img src="file:///android_asset/40.png"/>]]></string>

答案 1 :(得分:0)

如果上述方法不起作用,请退出所有内容并执行Html.fromHTML()

<string name="p40">&lt;img src=\"file:///android_asset/40.png\"/&gt;</string>

然后

          String myhtmlIMG= Html.fromHtml(getResources().getString(R.string.p40));
          webView.loadData(myhtmlIMG,"text/html", null);

CNC中 只记得图像没有加载的原因。您必须覆盖webview加载视图才能从资产文件夹加载。这个帖子中的代码。

Displaying Android asset files in a WebView?