由于页面是与H5交互完成的,所有需要客户端根据返回的URL,转换为一个Base64格式的字符串返回给H5端。

所以,我们需要借助Google的zxing工具包:

在app的build.gradle下添加依赖:

compile 'com.google.zxing:core:3.3.0'

1.封装一个生成二维码的工具类,构建creareQRImage方法,只需要传入一个url:

public static Bitmap createQRImage(String url,final int width, final int height
) {try {// 判断URL合法性
        if (url == null || "".equals(url) || url.length() < 1) {return null;
        }Hashtable<EncodeHintType, String> hints = new Hashtable<EncodeHintType, String>();
        hints.put(EncodeHintType.CHARACTER_SET, "utf-8");
        // 图像数据转换,使用了矩阵转换
        BitMatrix bitMatrix = new QRCodeWriter().encode(url,
                BarcodeFormat.QR_CODE, width, height, hints);
        int[] pixels = new int[width * height];
        // 下面这里按照二维码的算法,逐个生成二维码的图片,
        // 两个for循环是图片横列扫描的结果
        for (int y = 0; y < height; y++) {for (int x = 0; x < width; x++) {if (bitMatrix.get(x, y)) {pixels[y * width + x] = 0xff000000;
                } else {pixels[y * width + x] = 0xffffffff;
                }}}// 生成二维码图片的格式,使用ARGB_8888
        Bitmap bitmap = Bitmap.createBitmap(width, height,
                Bitmap.Config.ARGB_8888);
        bitmap.setPixels(pixels, 0, width, 0, 0, width, height);
        return bitmap;
    } catch (WriterException e) {e.printStackTrace();
    }return null;
}

2.根据bitmap转换成base64:

public static String bitmapToBase64(Bitmap bitmap) {String result = null;
    ByteArrayOutputStream baos = null;
    try {if (bitmap != null) {baos = new ByteArrayOutputStream();
            bitmap.compress(Bitmap.CompressFormat.PNG, 100, baos);
            baos.flush();
            baos.close();
            byte[] bitmapBytes = baos.toByteArray();
            result = Base64.encodeToString(bitmapBytes, Base64.DEFAULT);
        }} catch (IOException e) {e.printStackTrace();
    } finally {try {if (baos != null) {baos.flush();
                baos.close();
            }} catch (IOException e) {e.printStackTrace();
        }}return result;
}

3.调用工具类:

Bitmap ubm= QRUtil.createQRImage(getQRinfo,350,350);
String bResult=CommentUtils.bitmapToBase64(ubm);
String msg="data:image/png;base64,"+bResult;
LogUtil.i("base64---"+msg);

注意:传个H5的时候要加上前缀。

Android将网络url转换为base64相关推荐

  1. Android通过网络URL获取图片并显示

    1.布局文件 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:to ...

  2. Spring Boot 图片url转换为base64字符串

    通过图片链接将图片转换为base64编码字符串 之前直接向前端传图片文件,遇到跨域问题,一直没有解决,干脆将图片的base64字符串给前端了 参数:String类型,imgurl 图片链接 返回值:S ...

  3. 将网络url图片链接转换为File类型对象

    将网络url图片链接转换为File类型对象 public static File convertFileByUrl(String url) {File file = null;URL urlfile; ...

  4. Android ExoPlayer实现网络URL或本地视频播放

    Android ExoPlayer播放器使用 转载请标明出处:http://blog.csdn.net/zhijunhong/article/details/51056302 谢谢!~ 项目需要播放网 ...

  5. css不支持data image,CSS_CSS中使用image data URI来处理图片的方法,即将图片资源转换为 base64 字 - phpStudy...

    CSS中使用image data URI来处理图片的方法 即将图片资源转换为 base64 字符串格式嵌到页面或样式中.这样连图片的请求链接都省了. 如: 使用方式 CSS Code复制内容到剪贴板 ...

  6. uni-app图片本地路径/网络路径转base64流 压缩

    uniapp可通过此方法对本地路径 如: -/-/static/img/01.png 或者网络路径图片转为base64 urlTobase64(url) {var toBase64Url;uni.re ...

  7. Android 使用网络技术

    Android 使用网络技术 Android 使用网络技术 使用WebView 使用Http协议访问网络 1 使用HttpURLConnection 2 使用OkHttp 解析xml格式 解析JSON ...

  8. 将图片(路径)转换为Base64 和 将base64转换为file类型

    var image={/* 将图片(路径)转换为Base64 */getBase64FromImageURL(url, callback) {var canvas = document.createE ...

  9. android 代码获取图片信息吗,Android 通过网络获取图片的代码

    Android 通过网络获取图片的代码 主activity package com.netimg; import android.app.Activity; import android.graphi ...

最新文章

  1. Hadoop运维记录系列(二十二)
  2. Android --- allowBackup 属性的含义和危险性实例讲解
  3. r语言 图形一览_R语言统计与绘图:ggplot2图形组合布局
  4. linux 程序收到sigsegv信号_linux下定位多线程内存越界问题实践总结
  5. 交通安全与智能控制专业学计算机吗,交通安全与智能控制专业主要做什么
  6. ios 控件切圆_iOS中 切圆角,任意几个角(带边框,不带边框)__OC和Swift版本 韩俊强的博客...
  7. linux下文件的相关信息
  8. sql server 分区_SQL Server:锁定设置以用于增强分区功能
  9. Let’s to be a bug-free programmer
  10. 什么软件可以让头发变黑_吃什么可以让头发变黑?
  11. 3.25期货每日早盘操作建议
  12. Exif 格式介绍和操作
  13. Excel2013 破解(编辑工作表受保护)密码
  14. MacOS制作ubuntu18.04系统U盘启动盘
  15. Flask 框架 网页跳转详解。
  16. python实现web可视化_数据可视化怎么做【python数据可视化的效果如何在web页面中展示】...
  17. 集中式存储和分布式存储
  18. ionic Android编译打包出错:Failed to install 'cordova-plugin-code-push'
  19. windows2012装sql 2000 sql 2005 vs2005的解决办法
  20. 网上流行护眼色的RGB值和颜色代码

热门文章

  1. java web 下载文件带宽限制_java-下载时限制带宽
  2. Dreamweaver8 查找和替换窗口不见了解决办法
  3. android margin/padding区别
  4. Redis Lettuce客户端异步连接池详解
  5. [RK3568 Android11] 教程之升级固件方法二(电脑升级Update包)
  6. 驱动人生8之后需要会员才能满速下载,解决方案
  7. 飞浆PaddlePaddle-百度架构师手把手带你零基础实践深度学习(学习笔记)
  8. 新一代工业园区智能制造产业运营中心建设项目方案建议书
  9. prometheus 企业监控常用函数,与简单的实际应用分析
  10. 姓名大全 导入mysql_根据项目类型导入Excel文件到不同数据库(示例代码)