闲情zhi

生活 创业 时评 杂文

Android二维码插件zxing2.1的竖屏显示

写技术贴什么的最没有情趣了, 而且还是别人写过无数遍的,不过这个技术问题耗费了我一天,找了N多篇文章,也该记录一下靠谱的几篇,让后人可以少走弯路。

Zxing毫无疑问的确是一个很屌的开源二维码软件,功能就不必赘述,官方地址:https://code.google.com/p/zxing/

我不是太会ant这种编译,所以直接用了现成的core2.1.jar包。这边要说明一点我用的是从core2.1.jar(后面会附下载链接)  而不是core1.6.jar等等,因为今天用了1.6版本,看了网上的教程始终解决不了竖屏之后相框中的二维码比例失真问题,简单点来说被拉长了,后来在写这篇记录之前的半个小时,楼主从万花丛中找到了一点红,2.1版本完美解决失真问题,果然后面的版本比较靠谱。不过我参考的博主那边第五步是有问题的,在博主下面的评论中出现的高手指出了错误,才最终解决。

1.修改manifest文件,将CaptureActivity设为portrait
[snippet id=”44″]
2.在DecodeHandler.java文件中,找到decode(byte[],int,int)方法,在buildLuminanceSource调用前,加上如下:

[snippet id=”45″]

3.在CameraManager.java中找到getFramingRectInPreview()方法, 替换相应代码

[snippet id=”46″]

4.在CameraConfigurationManager.java里找到setDesiredCameraParameters()方法,在
camera.setParameters(parameters)之前加入

[snippet id=”47″]

 

5.这一步最关键了,之前有人说是去掉一部分代码,这样会导致扫描的东西变扁。正确的方法应该为:在CameraConfigurationManager.java里找到initFromCameraParameters(Camera camera)方法,改为
[snippet id=”48″]

附:

1. core-2.1压缩包 官方下载地址:http://repo1.maven.org/maven2/com/google/zxing/core/  选择对应的版本就行,比如2.1就进入2.1中选择core2.1.jar就好

2. 万花丛中的一点红:http://blog.csdn.net/bxs412/article/details/8616054 感谢博主

3. 软件成果截图么么哒!

截图

 

发表评论

电子邮件地址不会被公开。