框架学习八:二维码(Zxing)
2015-09-21 15:58
375 查看
本文转自夏神:http://blog.csdn.net/xiaanming/article/details/10163203
一、用什么
二维码扫描用的google的开源框架Zxing。
二、下载
地址:http://code.google.com/p/zxing/。
http://download.csdn.net/download/xiaanming/5990219
三、怎么用
记得要加相机权限。
1、拷贝三个包到自己项目中,并将相关资源引入:com.mining.app.zxing.camera,com.mining.app.zxing.decoding,com.mining.app.zxing.view。
2、导入Zxing.jar包。
3、引入类:MipcaActivityCapture。这个activity主要处理扫描界面的类,比如扫描成功有声音和震动等等,主要关注里面的handleDecode(Result result, Bitmap barcode)。扫描完成之后将扫描到的结果和二维码的bitmap当作参数传递到handleDecode(Result result, Bitmap barcode),只需在这儿写出相对应的处理代码即可。
4、自定义效果
1)更改扫描框的大小:在CameraManager类里的getFramingRect()。我自己更改后的一个:
[java] view plaincopy
public Rect getFramingRect() {
Point screenResolution = configManager.getScreenResolution();
if (framingRect == null) {
if (camera == null) {
return null;
}
int width = screenResolution.x;
int height = screenResolution.y * 1 / 2;
int leftOffset = (screenResolution.x - width) / 2;
int topOffset = (screenResolution.y - height) / 2;
framingRect = new Rect(leftOffset, topOffset, leftOffset + width, topOffset + height);
Log.d(TAG, "Calculated framing rect: " + framingRect);
}
return framingRect;
}
2)更改扫描框的样式:在ViewFinderView类中修改。
更改扫描框大小后,更改扫描框下方的文字位置,使得其居中显示:
[java] view plaincopy
paint.setTextAlign(Align.CENTER);
canvas.drawText(getResources().getString(R.string.scan_text), width/2, (float) (frame.bottom + (float)TEXT_PADDING_TOP *density), paint);
四、需要扫描本地图片
本机扫描本机图片,参考夏神:http://blog.csdn.net/xiaanming/article/details/14450809
五、遇到的问题
raw文件夹提交不了svn,错误提示是:
我怎么解决的:删了raw文件夹,然后再重新创建,再将该文件夹下东西拷贝进来,再次提交svn。
一、用什么
二维码扫描用的google的开源框架Zxing。
二、下载
地址:http://code.google.com/p/zxing/。
http://download.csdn.net/download/xiaanming/5990219
三、怎么用
记得要加相机权限。
1、拷贝三个包到自己项目中,并将相关资源引入:com.mining.app.zxing.camera,com.mining.app.zxing.decoding,com.mining.app.zxing.view。
2、导入Zxing.jar包。
3、引入类:MipcaActivityCapture。这个activity主要处理扫描界面的类,比如扫描成功有声音和震动等等,主要关注里面的handleDecode(Result result, Bitmap barcode)。扫描完成之后将扫描到的结果和二维码的bitmap当作参数传递到handleDecode(Result result, Bitmap barcode),只需在这儿写出相对应的处理代码即可。
4、自定义效果
1)更改扫描框的大小:在CameraManager类里的getFramingRect()。我自己更改后的一个:
[java] view plaincopy
public Rect getFramingRect() {
Point screenResolution = configManager.getScreenResolution();
if (framingRect == null) {
if (camera == null) {
return null;
}
int width = screenResolution.x;
int height = screenResolution.y * 1 / 2;
int leftOffset = (screenResolution.x - width) / 2;
int topOffset = (screenResolution.y - height) / 2;
framingRect = new Rect(leftOffset, topOffset, leftOffset + width, topOffset + height);
Log.d(TAG, "Calculated framing rect: " + framingRect);
}
return framingRect;
}
2)更改扫描框的样式:在ViewFinderView类中修改。
更改扫描框大小后,更改扫描框下方的文字位置,使得其居中显示:
[java] view plaincopy
paint.setTextAlign(Align.CENTER);
canvas.drawText(getResources().getString(R.string.scan_text), width/2, (float) (frame.bottom + (float)TEXT_PADDING_TOP *density), paint);
四、需要扫描本地图片
本机扫描本机图片,参考夏神:http://blog.csdn.net/xiaanming/article/details/14450809
五、遇到的问题
raw文件夹提交不了svn,错误提示是:
我怎么解决的:删了raw文件夹,然后再重新创建,再将该文件夹下东西拷贝进来,再次提交svn。
相关文章推荐
- oracle10G 数据泵技术
- spark作业调度
- @property
- Java中如何实现时间的加减
- Torch基础学习(一)
- Boost和标准库中正则表达式的使用
- sql去重查询
- hdu 1257 最少拦截系统 (贪心)
- 添加的千分的分隔符
- Tomcat下部署多个项目
- ocp-v13-683
- 添加千分的分隔符
- git 命令学习及更新
- 提高网页性能的九大技巧
- JAVA自带监控工具的介绍
- NET编程简易生成用友财务软件的财务接口数据
- Spring with Hibernate persistence and transactions example
- Android中常见的像素单位
- ubuntu 环境变量改错导致所有命令用不了
- 单例模式的七种写法