Я использую 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>
P.S: html/flddesc.png - это изображение PNG8 размером 180x200 ~ 20kb размера
Попробуйте эту функцию:
webview.loadUrl("file:///android_asset/your_html.html");