android 在HTML中显示bitmap

时间:2023-03-10 07:21:11
android 在HTML中显示bitmap

逻辑:将bitmap转化为Base64,通过调用HTML中的JS,显示到HTML中

(1)android代码

  1. public String bitmaptoString(Bitmap bitmap) {
  2. // 将Bitmap转换成Base64字符串
  3. StringBuffer string = new StringBuffer();
  4. ByteArrayOutputStream bStream = new ByteArrayOutputStream();
  5. try {
  6. bitmap.compress(CompressFormat.PNG, 100, bStream);
  7. bStream.flush();
  8. bStream.close();
  9. byte[] bytes = bStream.toByteArray();
  10. string.append(Base64.encodeToString(bytes, Base64.NO_WRAP));
  11. } catch (IOException e) {
  12. e.printStackTrace();
  13. }
  14. System.out.println("string.."+string.length());
  15. return string.toString();
  16. }

Bitmap bitmap = ....;  //获取bitmap对象

webView.loadUrl("javascript:onSaveCallback('data:image/png;base64," + bitmaptoString(bitmap)  + "')");    调用JS显示

(2)Html代码

  <html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

    <script type="text/javascript">

      function onSaveCallback(src){
        window.hui.showMessage(src);
        document.getElementById("test").src = src;
      }

    </script>

  </head>
  <body>
    <img id="test" src=""  onclick=""/>
  </body>
  </html>