標籤:
最近工作中需要開發帶有二維碼掃描功能的軟體(基於開源項目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();
}
Android—ZXing二維碼掃描遇到的問題