【问题标题】:Android Webview IMG from string.xml getting exception来自string.xml的Android Webview IMG得到异常
【发布时间】:2012-06-12 03:39:02
【问题描述】:

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

这可能是我的报价处理吗?

【问题讨论】:

    标签: android webview


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      如果上述方法不起作用,请转义所有内容并执行 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);
      

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

      Displaying Android asset files in a WebView?

      【讨论】:

      • 我开始认为这是一个安全问题......也许 webView.loadData 无法从我的资产中加载图像文件......?
      • 是的,我只记得它无法加载的原因。
      • 所以这是一些安全问题?使用 ICS?
      • 不是真正的安全问题。默认情况下,WebView 无法识别资产 url。
      猜你喜欢
      • 2015-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-12
      相关资源
      最近更新 更多