WebViewを用いるとテキストと画像を同時に表示することが簡単にできます。
この際、画像データはすでにファイルとして端末内のどこかやURLによってどこかにすでにあることが多いです。
今回は、データはすでにメモリ上に展開されていて画像ファイルとして存在していない状況で、Android端末で表示する際のテクニックになります。
やり方
すでに画像データはバイト配列で用意できているとします。
これをBase64でエンコードし、HTMLのimgタグ内にセットします。
このとき、imgタグ内にセットする文字列は次のような形になります。
プログラム例[java]
byte[] imageBin;
String base64 = new String( Base64.encode( imageBin, Base64.DEFAULT ) );
String html = String.format( ““, base64 );
webview.loadDataWithBaseURL( “”, html, “text/html”, “UTF-8”, “” );
[/java]これで文章中に画像データが含まれ、WebViewで表示できるようになります。
WebViewで画像表示の利点は、このようにメモリ内に作った画像を表示できることと、TextViewに画像を表示するよりも手軽なことと、アニメーションGIFを使えることでしょうか。参考
「isherの日記 – WebViewで動的に画像を設定する方法」を参考にさせていただきました。