Android—ZXing二维码扫描遇到的问题
2016-04-11 17:51
393 查看
最近工作中需要开发带有二维码扫描功能的软件(基于开源项目ZXing),遇到的问题记录一下,也希望给大家带来帮助。
1.首先因为扫描要开摄像机所以加权限是一定的,不然后面什么都不能进行
<uses-permission android:name="android.permission.CAMERA" />
2.设置扫描框的大小:
在com.zxing.camera包中查找
private static final int MIN_FRAME_WIDTH = 240;
private static final int MIN_FRAME_HEIGHT = 240;
private static final int MAX_FRAME_WIDTH = 580;
private static final int MAX_FRAME_HEIGHT = 580;
修改这几个属性值就可以修改扫描框大小。
3.实现二维码的重复扫描
1.在com.zxing.decoding包中查找restartPreviewAndDecode()方法,本身是private改为public
2.在扫描二维码的activity中添加重复扫描方法:
private void continuePreview() {
SurfaceView surfaceView = (SurfaceView) findViewById(R.id.preview_view);
SurfaceHolder surfaceHolder = surfaceView.getHolder();
initCamera(surfaceHolder);
if (handler != null) {
handler.restartPreviewAndDecode();
}
注:有时候直接调用此方法会出现bug:多次扫描过后返回到上一个界面再次进入的时候会出现黑屏。
解决方法:不直接调用continuePreview()这个方法,在需要二次扫描的时候直接写:
if (handler != null) {
handler.restartPreviewAndDecode();
}
1.首先因为扫描要开摄像机所以加权限是一定的,不然后面什么都不能进行
<uses-permission android:name="android.permission.CAMERA" />
2.设置扫描框的大小:
在com.zxing.camera包中查找
private static final int MIN_FRAME_WIDTH = 240;
private static final int MIN_FRAME_HEIGHT = 240;
private static final int MAX_FRAME_WIDTH = 580;
private static final int MAX_FRAME_HEIGHT = 580;
修改这几个属性值就可以修改扫描框大小。
3.实现二维码的重复扫描
1.在com.zxing.decoding包中查找restartPreviewAndDecode()方法,本身是private改为public
2.在扫描二维码的activity中添加重复扫描方法:
private void continuePreview() {
SurfaceView surfaceView = (SurfaceView) findViewById(R.id.preview_view);
SurfaceHolder surfaceHolder = surfaceView.getHolder();
initCamera(surfaceHolder);
if (handler != null) {
handler.restartPreviewAndDecode();
}
注:有时候直接调用此方法会出现bug:多次扫描过后返回到上一个界面再次进入的时候会出现黑屏。
解决方法:不直接调用continuePreview()这个方法,在需要二次扫描的时候直接写:
if (handler != null) {
handler.restartPreviewAndDecode();
}
相关文章推荐
- Android初试--Android中的BroadcastReceiver(3)
- widget
- 浅谈Android程序与JavaScript脚本的交互
- Android —— 代码优化及常用代码块
- 使用最新版AndroidStudio2.0进行NDK开发并且链接第三方so库
- 浅析Android4.0 Animator框架
- Android开发--组件详细介绍TextView
- Android_AutoLayout全新适配方式原理分析
- Android中复制及粘贴功能
- Android Dalvik虚拟机初识
- Android Fragment应用实战
- Android的View生命周期
- Android Studio -- Could not save project!: Unable to save project files.不能保存项目,报错解决办法
- android屏幕适配详解
- Android App中使用AudioManager类来编写音频播放器
- CM android的CMUpdater分析(一)
- android中跨进程通讯的4种方式
- Android Studio Gradle Dependencies
- Android中的Touch事件处理
- 发现内存泄露