Android—ZXing二維碼掃描遇到的問題


最近工作中需要開發帶有二維碼掃描功能的軟件(基於開源項目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();
        }

  

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM