WebViewで動的に画像を設定する方法

WebViewに画像を表示する場合、静的に決まっている画像であればassetsに放り込んでfile:///android_asset/のURLでimgタグを作れば良いのですが、編集した画像だったりをJavaから設定したい場合にはdata:imageスキームを使う事で実現出来ます。

<img src="data:image/png;base64,%s">

こんなHTMLを用意しておき
読み込んだ画像をバイト配列にしてBase64して流し込みます。

InputStream is = [Your Image]
byte[] b = new byte[is.available()];
is.read(b);
String image64 = Base64.encodeToString(b, Base64.DEFAULT);
String html = String.format(baseHtml, image64);
webview.loadData(html, "test/html", "utf-8");