Android二维码工具zxing使用
二维码在我们生活中随处可见。在我眼里简直能够用“泛滥”来形容啦。那怎样在我们Android项目中扫描识别二维码或生成二维码图片呢?
我们通常使用的开源框架是zxing。在github上的开源地址:https://github.com/zxing/zxing,眼下在做的项目中也用到这个框架,
所以自己做了个demo,方便学习及下次使用。
识别二维码
/**
* 扫描二维码演示样例
*/
public class ScanCodeActivity extends Activity implements View.OnClickListener {
private Button start_scan;
private TextView result_tv;
private final static int REQUEST_CODE = 100;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_scan);
this.start_scan = (Button) findViewById(R.id.start_scan);
this.result_tv = (TextView) findViewById(R.id.result_tv);
this.start_scan.setOnClickListener(this);
}
@Override
public void onClick(View v) {
if (v.getId() == R.id.start_scan) {
//zxing框架已经帮我们封装好相应的实现类。直接调用startActivityForResult就可以
Intent intent = new Intent(this, CaptureActivity.class);
startActivityForResult(intent, REQUEST_CODE);
}
}
/**
* 在onActivityResult中处理数据
* @param requestCode
* @param resultCode
* @param data
*/
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK && requestCode == REQUEST_CODE) {
Bundle bundle = data.getExtras();
String scanResult = bundle.getString("result");
this.result_tv.setText(scanResult);
}
super.onActivityResult(requestCode, resultCode, data);
}
}
生成二维码:
/**
* 生成二维码演示样例
*/
public class MadeCodeActivity extends Activity implements View.OnClickListener {
private EditText code_edt;
private Button made_code;
private ImageView result_iv;
private CheckBox logo_cb;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_made);
this.code_edt = (EditText) findViewById(R.id.code_edt);
this.made_code = (Button) findViewById(R.id.made_code);
this.result_iv = (ImageView) findViewById(R.id.result_iv);
logo_cb = (CheckBox) findViewById(R.id.logo_cb);
this.made_code.setOnClickListener(this);
}
@Override
public void onClick(View v) {
if (v.getId() == R.id.made_code) {
String content = code_edt.getText().toString().trim();
boolean isAddLogo = logo_cb.isChecked();
if (TextUtils.isEmpty(content)) {
Toast.makeText(this, "输入内容不能为空", Toast.LENGTH_LONG).show();
return;
}
madeCode(content, isAddLogo);
}
}
/**
* 生成二维码
*
* @param content 要生成图片的文字内容
* @param isAddLogo 是否在二维码中加入LOGO图片
*/
private void madeCode(String content, boolean isAddLogo) {
String bitmapPath;
if (!isAddLogo) {//不带LOGO
bitmapPath = EncodeUtil.createQRImage(this, content, 300, 300, null);
} else {//带Logo,R.mipmap.ic_launcher就是LOGO相应图片,自行加入
bitmapPath = EncodeUtil.createQRImage(this, content, 300, 300, BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher));
}
if (!TextUtils.isEmpty(bitmapPath)) {
result_iv.setImageBitmap(BitmapFactory.decodeFile(bitmapPath));
}
}
}
完毕的项目(AndroidStudio项目)下载地址:
http://download.csdn.net/detail/true100/9487162
Android二维码工具zxing使用的更多相关文章
- Android二维码识别 开源项目ZXing的编译
Android二维码识别 开源项目ZXing的编译 Android端的条形码/二维码识别功能 因为手机端的输入不是很方便,所以条形码/二维码的扫描是一种很有效的解决手段. 比较流行的手机应用中,常用的 ...
- Android二维码开源项目zxing用例简化和生成二维码、条形码
上一篇讲到:Android二维码开源项目zxing编译,编译出来后有一个自带的測试程序:CaptureActivity比較复杂,我仅仅要是把一些不用的东西去掉,用看起来更方便,二维码和条形码的流行性自 ...
- Java使用Zxing生成、解析二维码工具类
Zxing是Google提供的关于条码(一维码.二维码)的解析工具,提供了二维码的生成与解析的方法. 1.二维码的生成 (1).将Zxing-core.jar 包加入到classpath下. (2). ...
- 二维码工具类 - QrcodeUtils.java
二维码工具类,提供多种生成二维码.解析二维码的方法,包括中间logo的二维码等方法. 源码如下:(点击下载 - QrcodeUtils.java.MatrixToImageWriterEx.java. ...
- android 二维码生成+扫描
android 二维码生成+扫描 1.在Android应用当中,很多时候都要用到二维码扫描,来避免让用户手动输入的麻烦. Google官方自己推出了一个二维码开源项目:ZXing库. 2.这里简单介绍 ...
- Android二维码扫描、生成
Android二维码扫描.生成 现在使用二维码作为信息的载体已经越来越普及,那么二维码的生成以及扫描是如何实现的呢 google为我们提供了zxing开源库供我们使用 zxing GitHub源码地址 ...
- java二维码工具类,中间带LOGO的,很强大
jar包下载maven 配置: Xml代码 收藏代码 <dependency> <groupId>com.google.zxing</groupId> <ar ...
- Android二维码功能实现,在程序内嵌入ZXing项目
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/9526247 最近二维码真是越来越火了,随便电视上.网络上.商场里,到处都是二维码. ...
- Java生成带小图标的二维码-google zxing 工具类
近期一直忙于开发微信商城项目,应客户要求,要开发个有图标的二维码.经过两次改版,终于实现了该功能(第一次没有小图标,这次才整合好的),如下是完整代码 . 该代码使用Java7开发,另外使用 core- ...
随机推荐
- socketcluster 客户端请求
<html> <head> <title>test</title> <script src="https://cdn.bootcss.c ...
- ogre3D学习基础9 -- 光源程序实例
这一章练习一下光源的使用,光源分为三种:点光源,聚光源,有向光.具体内容前面说过,这里就不解释了. 继续在上一章的程序的基础上实现. 1.创建摄像机(Camera) createCamera()函数是 ...
- 淘宝的TProfile分析
TProfile是一个用来抓取性能数据的工具.大概是去年的时候对其分析了一下,并将它改造成了用于分析学习开源产品时的一个trace工具(不是很完善,自己用够用).现在将之前的笔记翻出来,记录一下. 1 ...
- day03_04 文件后缀及系统环境变量
进入cmd,如果想直接切换盘符的话,操作如下 dir命令---查看目录下的文件及文件夹 cd命令---想进入某个目录,就是是双击文件夹进入目录的命令,按table键有神奇效果哦 cd ..命令---类 ...
- Linux基础之Linux简介
Linux(英语发音:/ˈlɪnəks/ lin-əks)是一种自由和开放源代码的类UNIX操作系统. Linux简介 Linux(英语发音:/ˈlɪnəks/ lin-əks)是一种自由和开放源代码 ...
- HUST——1110雪碧(简单DFS)
1110: 雪碧 时间限制: 1 Sec 内存限制: 128 MB 提交: 18 解决: 6 题目描述 杨神最近特别喜雪碧,他现在有两瓶,他大晚上的在街上走,他逢店加一倍(雪碧),逢摊吃大虾并喝一 ...
- docker (centOS 7) 使用笔记2 - 使用nfs作为volume
本次测试的服务器2台,服务器#1(centos7)最为docker容器所在的host,服务器#2(centos6)提供NFS服务 1. #2上配置NFS服务 (1) 安装nfs软件包 yum -y i ...
- POJ2594Treasure Exploration(最小路径覆盖,相交)
Treasure Exploration Have you ever read any book about treasure exploration? Have you ever see any f ...
- jq 的replaceWith方法在360下面会出现兼容问题
弄的繁琐点, 先remove旧的元素,然后append就好了
- 转 Perl函数返回值用法指导
http://developer.51cto.com/art/201007/213003.htm Perl函数返回值用法指导 Perl编程语言中Perl函数返回值用法你是否比较熟悉,这里向大家简单 ...