2011-05-19 69 views
1

我使用WebView.loadDataWithBaseURL從我的應用程序的內部資源加載我的幫助頁面。Android WebView.loadDataWithBaseURL首頁加載亂七八糟。如何解決它?

我有help.html和位於資產目錄中的幾張圖片。該頁面加載和顯示圖像,但圖像周圍的文字是一團糟。它沒有顯示在圖像的右側,而是圖像與文本重疊。

這隻發生在第一次加載頁面。如果我關閉WebView並再次打開它,那麼一切都很好。 看來,首先加載WebView花了一些時間來加載圖像,並沒有重新格式化後的頁面。在第二次嘗試中,圖像被緩存並與文本一起顯示並格式正確。

這個問題的解決方案是什麼?

有沒有人也有這個問題?

這裏是我的代碼:

app.setContentView(R.layout.help); 
    final WebView web = (WebView) app.findViewById(R.id.helpWebView); 
    web.setBackgroundColor(0); 
    web.loadDataWithBaseURL("file:///android_asset/", helpHtml, "text/html", "utf-8", null);   

網頁是helpHtml串用裏面的代碼:

<html><head></head><body><img src="html/flddesc.png" align="left"/>this should be my long long text...</body></html> 

PS:HTML/flddesc.png是PNG8圖像180x200〜20KB的大小

回答

4

試試這個功能:

webview.loadUrl("file:///android_asset/your_html.html"); 
+1

謝謝。 loadURL正常工作。所以loadDataWithBaseURL具有不完整或錯誤的實現。 – 2011-05-19 08:04:01

+0

我不這麼認爲。這是爲了不同的目的。在這裏檢查它的文檔,你會明白:http://developer.android.com/reference/android/webkit/WebView.html – mudit 2011-05-19 08:38:15

+0

我在寫這篇文章之前閱讀這個頁面。關於加載loadURL或連接到我的問題的baseURL之間沒有區別。兩者都可以加載本地數據,一個來自url,另一個來自字符串,但不應該影響用戶在屏幕上看到的內容。而且我也認爲,如果頁面顯示,那麼它應該正確顯示或根本不顯示。 – 2011-05-19 09:51:49