2010-06-18 12 views
6

Sto cercando di visualizzare il contenuto di un file html con il metodo loadDataWithBaseURL() in Android.È possibile visualizzare l'immagine con il metodo loadDataWithBaseURL() in Android?

Ho solo una stringa che contiene i dati del file Html in una stringa chiamata sorgente e quindi la passiamo al metodo.

per es

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

I dati visualizzati nella vista va bene. Il mio problema è se il mio file html contiene delle immagini quindi non potrei visualizzarlo? come posso farlo?

+1

Il codice postato non funzionerà perché l'origine sarà vuota e View.load può funzionare solo se si dispone di un oggetto Visualizza che inizia con una lettera maiuscola. Ma tu dici che la vista va bene quindi presumo che questo sia solo un codice di esempio. – Janusz

risposta

5

lo si può fare, se le immagini nella sorgente utilizzano posizioni relative per lo src allora è necessario impostare baseUrl sulla "base" di dove verranno posizionate le immagini. per esempio, se si dovesse caricare home page di Google dalla fonte, sarebbe simile a questa:

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

che racconta la WebView in cui le immagini verranno caricate dalla.

Come nota a margine, non penso che gli URI "file: //" funzionino nella vista Web, per motivi di sicurezza.

+1

Uso un URI di file per caricare le immagini in una webview dalla memoria interna e funziona bene – Janusz

3

uso "file: /// android_res/raw/" come URL di base e mettere i tuoi file in res/prime nel progetto.

res/raw/index.html

res/raw/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

Questo non funziona con Android 2.1 ... – Patrick

1

ad esempio, se si desidera utilizzare alcune immagini dalla scheda sD, quindi il codice dovrebbe essere simile a questo:

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

Problemi correlati