android生成二维码
新建项目
布局截图如下(一个输入框,一个按钮,一个imageview),输入想要的东西(文字,数字,网站链接等)然后点击按钮生成二维码,然后可以扫描识别。
首先需要一个谷歌的一个jar包
activity的代码
- private EditText et1;
- private Button btn1;
- private ImageView iv1;
- private static final int IMAGE_HALFWIDTH = 35;//图片宽度值大小
找到输入框,和按钮,imageview
- et1 = (EditText)findViewById(R.id.editText1);
- btn1 = (Button)findViewById(R.id.button1);
- iv1 = (ImageView)findViewById(R.id.imageView1);
按钮点击事件
- btn1.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- // TODO Auto-generated method stub
- String toMakePic_string = et1.getText().toString().trim();
- Bitmap logo= BitmapFactory.decodeResource(getResources(),R.drawable._netcfg);
- try {
- Bitmap bm=createCode(toMakePic_string,logo,BarcodeFormat.QR_CODE); //一个方法在下面
- iv1.setImageBitmap(bm);
- } catch (WriterException e) {
- e.printStackTrace();
- }
- }
- });
- createCode方法 返回bitmap
- public Bitmap createCode(String string,Bitmap mBitmap, BarcodeFormat format)throws WriterException {
- //Matrix,中文里叫矩阵,在图像处理方面,主要是用于平面的缩放、平移、旋转等操作。
- Matrix m = new Matrix();
- float sx = (float) 2 * IMAGE_HALFWIDTH / mBitmap.getWidth();
- float sy = (float) 2 * IMAGE_HALFWIDTH / mBitmap.getHeight();
- m.setScale(sx, sy);//设置缩放信息
- //将logo图片按martix设置的信息缩放
- mBitmap = Bitmap.createBitmap(mBitmap, 0, 0,mBitmap.getWidth(), mBitmap.getHeight(), m, false);
- MultiFormatWriter writer = new MultiFormatWriter();
- Hashtable hst = new Hashtable();
- hst.put(EncodeHintType.CHARACTER_SET, "UTF-8");//设置字符编码
- //生成二维码矩阵信息
- BitMatrix matrix = writer.encode(string, format, 800, 800, hst);
- int width = matrix.getWidth();//矩阵高度
- int height = matrix.getHeight();//矩阵宽度
- int halfW = width / 2;
- int halfH = height / 2;
- int[] pixels = new int[width * height];//定义数组长度为矩阵高度*矩阵宽度,用于记录矩阵中像素信息
- for (int y = 0; y < height; y++) {//从行开始迭代矩阵
- for (int x = 0; x < width; x++) {//迭代列
- if (x > halfW - IMAGE_HALFWIDTH && x < halfW + IMAGE_HALFWIDTH && y > halfH - IMAGE_HALFWIDTH && y < halfH + IMAGE_HALFWIDTH) {
- //该位置用于存放图片信息
- //记录图片每个像素信息
- pixels[y * width + x] = mBitmap.getPixel(x - halfW+ IMAGE_HALFWIDTH, y - halfH + IMAGE_HALFWIDTH);
- }
- else {
- if (matrix.get(x, y)) {
- //如果有黑块点,记录信息
- pixels[y * width + x] = 0xff000000;//记录黑块信息
- }
- }
- }
- }
- Bitmap bitmap = Bitmap.createBitmap(width, height,Bitmap.Config.ARGB_8888);
- // 通过像素数组生成bitmap
- bitmap.setPixels(pixels, 0, width, 0, 0, width, height);
- return bitmap;
- }
完成截图(写什么都可以)【】
android生成二维码的更多相关文章
- Android生成二维码--保存和分享二维码图片
之前写过生成自定义二维码的两篇文章:<Android生成自定义二维码><Android生成二维码–拍照或从相册选取图片>,下面就介绍一下Android应用内如何保存以及分享二维 ...
- Android生成二维码--拍照或从相册选取图片
拍照或从相册选择图片是我们日常开发中经常使用到的,可以说是必须掌握的东西.上一篇我介绍了如何生成自定义二维码<Android生成自定义二维码>,其中logo和代替黑色色块的图片都是写死的, ...
- Android zxing 解析二维码,生成二维码极简demo
zxing 官方的代码很多,看起来很费劲,此demo只抽取了有用的部分,实现了相机预览解码,解析本地二维码,生成二维码三个功能. 简化后的结构如下: 废话少说直接上代码: BaseDecodeHand ...
- Android平台二维码之生成,扫描 & 识别
1.二维码的前世今生 “二维条码/二维码(2-dimensional bar code)是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的:在代码编制上巧妙地利 ...
- Android实例-实现扫描二维码并生成二维码(XE8+小米5)
相关资料: 第三方资料太大没法写在博文上,请下载CSDN的程序包. 程序包下载: http://download.csdn.net/detail/zhujianqiangqq/9657186 注意事项 ...
- 玩转Android之二维码生成与识别
二维码,我们也称作QRCode,QR表示quick response即快速响应,在很多App中我们都能见到二维码的身影,最常见的莫过于微信了.那么今天我们就来看看怎么样在我们自己的App中集成二维码的 ...
- Android二维码开源项目zxing用例简化和生成二维码、条形码
上一篇讲到:Android二维码开源项目zxing编译,编译出来后有一个自带的測试程序:CaptureActivity比較复杂,我仅仅要是把一些不用的东西去掉,用看起来更方便,二维码和条形码的流行性自 ...
- android 使用开源库zxing生成二维码,扫描二维码【转】
转自:http://blog.csdn.net/qq_16064871/article/details/52422723 zxing是一个开放源码的,用Java实现的多种格式的1D/2D条码图像处理库 ...
- Android:使用ZXing生成二维码(支持加入Logo图案)
ZXing是谷歌的一个开源库.能够用来生成二维码.扫描二维码.本文所介绍的是第一部分. 首先上效果图: ZXing相关各种文件官方下载地址:https://github.com/zxing/zxing ...
随机推荐
- QT QString转char*,char*转QString;简单明了,看代码。
//原始QStringQString qs = QString::fromLocal8Bit("我的");std::string strQs = qs.toStdString(); ...
- v880 debug
zte v880手机,ubuntu中配置真机调试, 1.开启手机调试模式2.增加/etc/udev/rules.d/51-android.rules. 内容如下:SUBSYSTEM=="us ...
- 原生javascript操作class-元素查找-元素是否存在-添加class-移除class
//判断元素是否有classfunction hasClass(ele, cls) { return ele.className.match(new RegExp('(\\s|^)'+cls+'(\\ ...
- PHP 面向对对象基础(接口,类)
介绍PHP面向对象的基础知识 1. 接口的定义interface ,类定义class,类支持abstract和final修饰符,abstract修饰为抽象类,抽象类 不支持直接实例化,final修饰的 ...
- 国内国外最好的java开发论坛及站点 [转]
国内: www.chinajavaworld.com -论坛人很多,高手也多,不过好像都在潜水 www.cn-java.com -也很不错,文章很好,但是就是商业性浓了点. www.chi ...
- OnClose()和 OnDestroy()
OnClose()和 OnDestroy() 基于对话框的MFC程序,发现每次程序退出时,托盘的小图标不能自动消失,鼠标移上去之后才能消失,比较不爽. 后来发现我删除这个图标的代码是在自己重写的OnC ...
- ProfessionalKnowledgeArchitecture
- iOS: 学习笔记, 用代码驱动自动布局实例
iOS自动布局是设置iOS界面的利器. 本实例展示了如何使用自动布局语言设置水平布局, 垂直布局 1. 创建空白iOS项目 2. 添加一个控制器类, 修改YYAppDelegate.m文件 #impo ...
- debug(fmt,args...)调试
1.定义宏(debug.h) #ifndef __DEBUG__H #define __DEBUG__H #include <stdio.h> #ifdef DEBUG #define d ...
- mvc action 参数绑定——值提供器【学习笔记】
每次http请求的各种数据(表单数据.url的数据.路由数据等等)都保存在不同的IValueProvider接口的实现类中. 而IValueProvider接口的实现类是通过ValueProvider ...