2013-02-10 109 views
0

對於我的android應用程序,我想加載一個html文件到webview,這個html文件將被存儲在「data/data/com.myapp/files/index.html」中。我可以加載相關的JavaScript文件,但是當我想從「data/data/com.myapp/files/img/image.png」加載圖片時,它不起作用。 這是如何我試圖做到這一點:Android:無法從內部存儲器加載圖像到webview

webView.loadDataWithBaseURL(getFilesDir()+"/img/", html, "text/html","utf-8", ""); //html is my html string I get from index.html 

我也試過:

webView.loadUrl(getFilesDir()+"/img/"+index.html"); 

在我的HTML文件,我有

<img id="image" src="/img/image.png"/> 

我已經驗證和該文件被加載到磁盤上,但我無法在webview上顯示它,顯示屏對於圖像保持空白。我無法讓它工作。所以我的問題是:它甚至有可能嗎?如果有,請告訴我如何?

我查過並發現其他人有類似的問題,但沒有解決方案正在工作。

編輯:把我的文件放在資產directorty不是我的選項,我已經測試過,它的工作原理。

我只是想下面的代碼,我發現在這裏:Load the image saved in sdcard in webview

String base = getFilesDir(); 
String imagePath = base + "/test.jpg"; 
String html = ("<html> 
      <head> 
      </head> 
      <body> 
      <img src=\""+ imagePath + "\"> 
      </body> 
      </html> 
      "); 
mWebView.loadData(html, "text/html","utf-8"); 

,但仍然沒有成功,顯然它的工作對誰問這個問題的人。我也測試了外部存儲器,但結果是一樣的。 manifest.xml中有所有權限。所以我真的不知道問題是什麼。任何建議或意見將不勝感激。

回答

0

問題解決了。它實際上來自格式不正確的數據,一旦我檢查並將正確的文件添加到手機內存,它開始工作。

+0

Pl你可以舉一個例子f你的代碼..請..我也卡在這裏。 html部分/ js/android .. – 2013-09-06 00:45:05

+0

@Anila,我可能有同樣的問題......你還記得這裏有什麼問題嗎? – TacB0sS 2015-03-01 07:39:02

1

考慮將靜態文件中assets文件夾中的Android項目中,並嘗試使用加載文件:

mWebView.loadUrl("file:///android_asset/html/index.html"); 

,然後從HTML文件指的是使用相對路徑圖片,樣式。

例如,在你的情況,你會follwing目錄結構:

PROJECT-ROOT 
|-src/ 
|-assets/ 
    |-html/index.html 
     |-img/image.png 
     |-css/style.css 

在此之後,你可以使用裏面index.html正常的HTML標籤,你會做,以使任何網頁。例如。 <img id="image" src="img/image.png"/><link rel="stylesheet" type="text/css" href="css/style.css">

不要忘記使用啓用JavaScript:

WebSettings webSettings = mWebView.getSettings(); 
webSettings.setJavaScriptEnabled(true); 
+0

你的答案您好感謝,我已經嘗試過了,它的工作原理,但我需要把我的文件在手機內存中,因爲它們可能會在運行期間被修改,這在將它們置於資產文件夾中時是不可能的。 – Anila 2013-02-10 12:40:39

相關問題