2010-06-18 9 views
6

Próbuję wyświetlić zawartość pliku html metodą loadDataWithBaseURL() w systemie Android.Czy możliwe jest wyświetlanie obrazu za pomocą metody loadDataWithBaseURL() w systemie Android?

Mam tylko ciąg, który zawiera dane pliku HTML w jednym łańcuchu o nazwie źródło, a następnie przekazuję to do metody.

na przykład

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

Dane wyświetlane w widoku jest w porządku. Mój problem polega na tym, że jeśli mój plik HTML zawiera jakiekolwiek obrazy, nie mógłbym go wyświetlić? jak mogę to zrobić?

+1

Kod, który wysłałeś, nie będzie działać, ponieważ źródło będzie puste, a View.load będzie działał tylko wtedy, gdy masz obiekt View zaczynający się wielką literą. Ale mówisz, że widok jest w porządku, dlatego zakładam, że to tylko przykładowy kod. – Janusz

Odpowiedz

5

możesz to zrobić, jeśli obrazy w źródle używają względnych lokalizacji dla src, musisz ustawić baseUrl na "bazę" miejsca, w którym obrazy będą się znajdować. Na przykład, jeśli były wczytywania strony głównej Google od źródła, to będzie wyglądać następująco:

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

który mówi webview gdzie obrazy zostaną załadowane z.

Nie sądzę, aby identyfikatory URI "file: //" działały w widoku internetowym ze względów bezpieczeństwa.

+1

Używam identyfikatora URI pliku, aby załadować obrazy do widoku sieciowego z pamięci wewnętrznej i działa dobrze – Janusz

3

użytkowania "file: /// android_res/raw/" jako podstawy URL i umieścić swoje pliki w RES/raw w projekcie.

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

To nie działa z systemem Android 2.1 ... – Patrick

1

na przykład, jeśli chcesz korzystać z niektórych zdjęć z sdcard, następnie Twój kod powinien wyglądać następująco:

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

Powiązane problemy