Android读取条形码

来源:互联网 发布:java词汇大全 编辑:程序博客网 时间:2024/06/10 17:51
        前段时间对Android开发突然很感兴趣,想着尝试开发一些应用程序。于是花了2天的时间看完了Ed Burnette的《hello android》。当然跳过了许多暂时不涉及的章节,包括2D,3D的绘图等,不过感觉这本入门教程写得相当不错,推荐给所有的入门者。
       实践是编程的学习捷径,于是尝试开发第一个应用程序:一维码的扫描。以前一直觉得一维码的读取很高深,因为涉及到许多图像处理的知识。不过上网发现原来还是有开源的第三方库zxing,这为我们提供了许多便利。初始下下来的代码很多,有60多M。这里有个很不错的网站[1](http://www.cnblogs.com/keyindex/archive/2011/06/08/2074900.html,from DotDot),附带了他对zxing代码的精简
       下载DotDot的项目编译的时候可能提示无法找到core.jar的打包文件。这时可以通过将zxing的core\src文件夹里的源代码文件输出成jar文件即可。编译好的jar文件可以放进android项目文件夹的asserts\libs再在android项目里的build path里面添加对应的jar包。
       测试通过之后,我在自己的项目里面整合了相关的代码,结果发现竖屏的情况下无法正确读取一维码。网络文章[2](http://www.cnblogs.com/liuan/archive/2012/01/09/2317377.html)给了我比较直接的答案:原因在于zxing的工作模式是横屏的,因此采用竖屏进行画面捕捉的时候在解码时将会出现异常,导致无法正确解析。现在比较直白的做法是把摄像头的预览改成横屏显示。
但是文章[2]提供的接口camera.setDisplayOrientation(90)需要level14以上才能使用,14以下的项目建议在Activity里面加入代码:
//实现摄像头的横屏预览
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
       以上代码同样可以实现摄像头横向取景的效果。