使用ZXing代码实现二维码扫描

1 首先下载Zxing的源码,然后将其中Android的版本导入到Android Studio

2 因为只需要二维码扫描的功能,所以只留下其中的四个包

其中 camera管理相机,decoding解析扫描到的二维码,view定义扫码的视图,MipcaActivityCapture是扫码的界面。

3 将res文件下的文件拷贝过来,注意是合并,不是简单的替换

4 修改AndroidMinifest.xml

5 修改由R引用带来的错误​

6 添加jar包,jar包导入不是简单的复制,要右键 add as library,导入成功后的jar包是可以展开的,如图​

7最终的结果如图

​有一个问题是取景框内的二维码被拉伸了。。。待解决。

解决方法是​

​Zxing  修改 CameraConfigurationManager.java文件的

void initFromCameraParameters(Camera camera)方法

在 Log.d(TAG, "Screen resolution: " + screenResolution);这句之后增加

  • Point screenResolutionForCamera = new Point();  screenResolutionForCamera.x = screenResolution.x;   screenResolutionForCamera.y = screenResolution.y;    // preview size is always something like 480*320, other 320*480
  • if (screenResolution.x < screenResolution.y) {  
  •         screenResolutionForCamera.x = screenResolution.y;  
  •         screenResolutionForCamera.y = screenResolution.x;  
  •         } 
  • ​再把其后的一句代码改为
  • cameraResolution = getCameraResolution(parameters, screenResolutionForCamera); 
原文地址:https://www.cnblogs.com/rainhome/p/5325667.html