我正在尝试在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,因此这不是解决方案。
也许是我的报价处理?
答案 0 :(得分:0)
这是一个逃避问题。尝试使用CDATA标签:
<string name="p40"><![CDATA[<img src="file:///android_asset/40.png"/>]]></string>
答案 1 :(得分:0)
如果上述方法不起作用,请退出所有内容并执行Html.fromHTML()
<string name="p40"><img src=\"file:///android_asset/40.png\"/></string>
然后
String myhtmlIMG= Html.fromHtml(getResources().getString(R.string.p40));
webView.loadData(myhtmlIMG,"text/html", null);
CNC中 只记得图像没有加载的原因。您必须覆盖webview加载视图才能从资产文件夹加载。这个帖子中的代码。