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);

-編集- 画像が読み込まれない理由を思い出しました。アセット フォルダーからロードできるようにするには、webview ロード ビューをオーバーライドする必要があります。このスレッドのコード。

AndroidアセットファイルをWebViewに表示しますか?

于 2012-06-11T19:24:32.117 に答える