0

我正在尝试在 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,所以这不是解决方案。

也许是我的报价处理?

4

2 回答 2

0

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

<string name="p40"><![CDATA[<img src="file:///android_asset/40.png"/>]]></string>
于 2012-06-11T19:22:32.820 回答
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);

-edit- 只记得图像未加载的原因。您必须覆盖 webview 加载视图以使其能够从您的资产文件夹加载。此线程中的代码。

在 WebView 中显示 Android 资产文件?

于 2012-06-11T19:24:32.117 回答