From 282c3dc39eec1088c930151309ef4c69f9168275 Mon Sep 17 00:00:00 2001 From: Jenly Date: Tue, 28 Apr 2020 22:27:59 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E7=BB=86=E8=8A=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/src/main/java/com/king/zxing/CaptureActivity.java | 7 +++++-- lib/src/main/java/com/king/zxing/CaptureFragment.java | 7 +++++-- lib/src/main/java/com/king/zxing/CaptureHandler.java | 6 +++--- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/lib/src/main/java/com/king/zxing/CaptureActivity.java b/lib/src/main/java/com/king/zxing/CaptureActivity.java index 0f4ca83..d1ba493 100644 --- a/lib/src/main/java/com/king/zxing/CaptureActivity.java +++ b/lib/src/main/java/com/king/zxing/CaptureActivity.java @@ -55,7 +55,10 @@ public class CaptureActivity extends AppCompatActivity implements OnCaptureCallb */ public void initUI(){ surfaceView = findViewById(getSurfaceViewId()); - viewfinderView = findViewById(getViewfinderViewId()); + int viewfinderViewId = getViewfinderViewId(); + if(viewfinderViewId != 0){ + viewfinderView = findViewById(viewfinderViewId); + } int ivTorchId = getIvTorchId(); if(ivTorchId != 0){ ivTorch = findViewById(ivTorchId); @@ -88,7 +91,7 @@ public class CaptureActivity extends AppCompatActivity implements OnCaptureCallb /** * {@link #viewfinderView} 的 ID - * @return + * @return 默认返回{@code R.id.viewfinderView}, 如果不需要扫码框可以返回0 */ public int getViewfinderViewId(){ return R.id.viewfinderView; diff --git a/lib/src/main/java/com/king/zxing/CaptureFragment.java b/lib/src/main/java/com/king/zxing/CaptureFragment.java index e44793e..e74c804 100644 --- a/lib/src/main/java/com/king/zxing/CaptureFragment.java +++ b/lib/src/main/java/com/king/zxing/CaptureFragment.java @@ -67,7 +67,10 @@ public class CaptureFragment extends Fragment implements OnCaptureCallback { */ public void initUI(){ surfaceView = mRootView.findViewById(getSurfaceViewId()); - viewfinderView = mRootView.findViewById(getViewfinderViewId()); + int viewfinderViewId = getViewfinderViewId(); + if(viewfinderViewId != 0){ + viewfinderView = mRootView.findViewById(viewfinderViewId); + } int ivTorchId = getIvTorchId(); if(ivTorchId != 0){ ivTorch = mRootView.findViewById(ivTorchId); @@ -100,7 +103,7 @@ public class CaptureFragment extends Fragment implements OnCaptureCallback { /** * {@link ViewfinderView} 的 id - * @return + * @return 默认返回{@code R.id.viewfinderView}, 如果不需要扫码框可以返回0 */ public int getViewfinderViewId(){ return R.id.viewfinderView; diff --git a/lib/src/main/java/com/king/zxing/CaptureHandler.java b/lib/src/main/java/com/king/zxing/CaptureHandler.java index 8a142d0..046161a 100644 --- a/lib/src/main/java/com/king/zxing/CaptureHandler.java +++ b/lib/src/main/java/com/king/zxing/CaptureHandler.java @@ -32,7 +32,6 @@ public class CaptureHandler extends Handler implements ResultPointCallback { private final DecodeThread decodeThread; private State state; private final CameraManager cameraManager; - private final Activity activity; private final ViewfinderView viewfinderView; /** * 是否支持垂直的条形码 @@ -66,7 +65,6 @@ public class CaptureHandler extends Handler implements ResultPointCallback { Map baseHints, String characterSet, CameraManager cameraManager) { - this.activity = activity; this.viewfinderView = viewfinderView; this.onCaptureListener = onCaptureListener; decodeThread = new DecodeThread(activity,cameraManager,this, decodeFormats, baseHints, characterSet, this); @@ -129,7 +127,9 @@ public class CaptureHandler extends Handler implements ResultPointCallback { if (state == State.SUCCESS) { state = State.PREVIEW; cameraManager.requestPreviewFrame(decodeThread.getHandler(), R.id.decode); - viewfinderView.drawViewfinder(); + if(viewfinderView!= null){ + viewfinderView.drawViewfinder(); + } } }