Reputation: 1463
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.
Upvotes: 4
Views: 5149
Reputation: 1463
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:
Come on Google, spaces in directory names have been common for 15 years. Get with the program.
Upvotes: 4
Reputation: 13731
webView.loadDataWithBaseURL("file:///android_asset/", sourse, "text/html", "UTF-8", null);
Upvotes: 4