Referencing image in assets from HTML not working

不想你离开。 提交于 2019-12-01 05:01:17

问题


I'm trying to display an image in a WebView in an Android app. The image exists in the assets folder of my Android project. The HTML is programmatically built and has this image ref in it:

The HTML is loaded into the WebView using:

webView.loadDataWithBaseURL( urlStr, htmlText, "text/html", "utf-8", urlStr );

urlStr = a base url needed to find other resources. htmlText = the programmatically generate HTML

The WebView loads the HTML fine, but the image is displayed as "missing". I have verified that the image exists at that location in the assets. Nevertheless it does not appear in the WebView.

I have seen numerous postings and tutorials saying that this should work, but it doesn't for me. This is on a 3.2 Android tablet. Anyone know if this only works on some versions of Android? Any thoughts about why it doesn't work in my case? Thanks.


回答1:


 webView.loadDataWithBaseURL("file:///android_asset/", sourse, "text/html", "UTF-8", null);



回答2:


OK, I finally figured this out. Apparently there is a bug somewhere in the Android code where it fails if the image path has a space in it. So:

<img src="file:///android_asset/SkyInfo/images/Deep Sky/M13-Misti.jpg">

will fail to load the image. If you change it to:

<img src="file:///android_asset/SkyInfo/images/DeepSky/M13-Misti.jpg">

it will work (assuming you've renamed the directory).

Note:

  • this is only a problem when reading from the assets.
  • appears to be an issue with Android 4.x. I have encountered this issue on 4.0.4 and 4.3 versions but spaces work just fine in 2.3.x version.

Come on Google, spaces in directory names have been common for 15 years. Get with the program.



来源:https://stackoverflow.com/questions/9813646/referencing-image-in-assets-from-html-not-working

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!