Androidでassetsフォルダに格納している画像をWebViewで表示させたい場合の方法を紹介します。

WebView.loadDataWithBaseURL()を使う

ローカルの画像やhtmlファイルを読み込むときにはWebView.loadData()を使うのではなく、WevView.loadDataWithBaseURL()を使えば利用できます。

webViewResult.loadDataWithBaseURL("file:///android_asset/", resultTemplete, "text/html", "utf-8", null);

 

※上記のhtmlという変数の中にはhtml形式のString型のデータが入っているものとしています。

上記のように第1引数の箇所に基準となるURLを指定すればOKです。つまりassetsフォルダを基準としたい場合には「file:///android_asset/」にするという事です。

私の経験上、WebView.loadDataメソッドは文字化けが発生したりと、利用する場合に問題が発生しやすいですので、WebView.loadDataWithBaseURL()を使ったほうがいいですね。