1. 程式人生 > >Android項目實戰(四十四):Zxing二維碼切換橫屏掃描

Android項目實戰(四十四):Zxing二維碼切換橫屏掃描

pla xxx mage tde min bar 分享圖片 spl 發現

原文:Android項目實戰(四十四):Zxing二維碼切換橫屏掃描

Demo鏈接

默認是豎屏掃描,但是當我們在清單文件中配置橫屏顯示的時候:

  <activity
            android:name=".CaptureActivity"
            android:screenOrientation="landscape"
            android:theme="@android:style/Theme.NoTitleBar.Fullscreen" />

這時候掃描,會發現掃描效果變形,方向不對。

可按以下步驟進行修改:

1、修改CameraConfigurationManager.java中的setDesiredCameraParameters函數,

camera.setDisplayOrientation(90); ---> camera.setDisplayOrientation(0);

技術分享圖片

2、修改CameraManager.javagetFramingRectInPreview()函數中修改成如下,即將x改為y , y改為x

rect.left = rect.left * cameraResolution.x / screenResolution.x;  
rect.right 
= rect.right * cameraResolution.x / screenResolution.x; rect.top = rect.top * cameraResolution.y / screenResolution.y; rect.bottom = rect.bottom * cameraResolution.y / screenResolution.y;

3、修改DecodeHandler.java中的decode函數

技術分享圖片

4、其它可修改部分參照Github Demo

可設置的:
掃描框中的中間線的寬度
掃描框中的中間線的與掃描框左右的間隙
中間那條線每次刷新移動的距離
四個綠色邊角對應的長度 、 寬度、顏色 、透明度
中間滑動線的最頂端位置 、 最低端位置
掃描線  是一張圖片
遮擋層顏色 , 正方形之外的 區域的顏色
閃點顏色

其他功能:
閃光燈開啟
從本地獲取圖片讀取二維碼
當前xxx時間內沒有掃描 , 關閉當前掃描二維碼界面

Android項目實戰(四十四):Zxing二維碼切換橫屏掃描