2010-06-18 68 views
6

我試圖在android中使用loadDataWithBaseURL()方法顯示html文件的內容。是否有可能在Android中使用loadDataWithBaseURL()方法顯示圖像?

我只是有一個字符串,其中包含一個名爲源的字符串中的Html文件數據,然後將其傳遞給該方法。用於e.g在視圖中顯示的

String source; //contain html tags with images 
View.loadDataWithBaseURl(null,source,"text/html","UTF-8","about:blank"); 

數據

是好的。 我的問題是,如果我的HTML文件包含任何圖像,然後我無法顯示它? 我該怎麼做?

+1

您發佈的代碼將不起作用,因爲如果您的View對象以大寫字母開頭,則來源將爲空,並且View.load只能使用。但你說視圖沒問題,所以我認爲這只是示例代碼。 – Janusz 2010-06-18 13:54:20

回答

5

你可以做到這一點,如果源中的圖像使用src的相對位置,那麼你需要將baseUrl設置爲圖像所在位置的「基礎」。例如,如果你從源加載谷歌的首頁,它應該是這樣的:

View.loadDataWithBaseURI("http://google.com",source,"text/html","UTF-8","about:blank"); 

它告知圖像將被加載web視圖。

作爲一個便箋,我不認爲「file://」URIs在Web視圖中工作,出於安全原因。

+1

我使用文件URI從內部存儲器加載圖像到webview,它工作正常 – Janusz 2010-06-18 13:56:30

3

使用「文件:/// android_res /生/」作爲自己的基本網址,並把你的文件RES /生在您的項目。

RES /原料/ index.html中

RES /原料/ image.jpg的

InputStream htmlStream = getResources().openRawResource(R.raw.index); 
Reader is = new BufferedReader(new InputStreamReader(htmlStream, "UTF8")); 

// read string from reader 
String html = readFile(is); 

webView.loadDataWithBaseURL("file:///android_res/raw/", html, 
          "text/html", "UTF-8", null); 
+0

這不適用於Android 2.1 ... – Patrick 2013-03-25 13:24:13

1

例如,如果你想使用一些圖像從SD卡,那麼你的代碼應該是這樣的:

final String path = Environment.getExternalStorageDirectory() + File.separator + "YourFolderName"); bookView.loadDataWithBaseURL("file://" + path, htmlTextWithHeadAndBody, "text/html", "UTF-8", "");

相關問題