2014-09-24

AndroidでBitmapをWebViewに表示する

Data URIスキーマを使えば、AndroidのWebViewにBitmapを表示することができる。つまり、imgタグのsrcに、「http://」で始まる画像の場所を書くのではなくて、「data:image/png;base64,」のようにして始まる画像のデータを埋め込む。

たとえば、Bitmap iconがあったとして、
    ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
    icon.compress(Bitmap.CompressFormat.PNG, 100, byteArrayOutputStream);
    byte[] byteArray = byteArrayOutputStream.toByteArray();
    String imgageBase64 = Base64.encodeToString(byteArray, Base64.NO_WRAP);
    String imageSrc = "data:image/png;base64," + imgageBase64;
    String htmlTag = "<img src='"  + imageSrc +  "'/>";
みたいにやる。
Base64にエンコードするときは、Base64.NO_WRAPをしてやらないとダメ。

0 件のコメント: