From e1885766102116df630797be35ae81ddf57334ec Mon Sep 17 00:00:00 2001 From: jenly1314 Date: Fri, 16 Nov 2018 18:23:54 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9A=B4=E9=9C=B2ViewfinderView=E4=B8=AD?= =?UTF-8?q?=E7=9A=84labelText=E7=9B=B8=E5=85=B3=E5=B1=9E=E6=80=A7=EF=BC=8C?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E4=BB=A3=E7=A0=81=E4=BF=AE=E6=94=B9labelText?= =?UTF-8?q?=E7=9B=B8=E5=85=B3=E5=B1=9E=E6=80=A7=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/caches/build_file_checksums.ser | Bin 590 -> 590 bytes README.md | 9 ++++-- .../java/com/king/zxing/ViewfinderView.java | 27 ++++++++++++++---- .../com/king/zxing/camera/CameraManager.java | 16 +++++++---- versions.gradle | 4 +-- 5 files changed, 41 insertions(+), 15 deletions(-) diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser index 435043eba7a43a95c9536eb8d8cd68fc1345e5ac..f9f763c60502b5057b6735870056129a1cf0cf96 100644 GIT binary patch delta 16 YcmX@da*k!fbk=m~bIp7k=WJpG06BpMvH$=8 delta 16 YcmX@da*k!fbk@`}e?&Mp&e_BW06m5W8vp com.king.zxing zxing-lite - 1.0.2 + 1.0.3 pom ``` ### Gradle: ```gradle -implementation 'com.king.zxing:zxing-lite:1.0.2' +implementation 'com.king.zxing:zxing-lite:1.0.3' ``` ### Lvy: ```lvy - + ``` @@ -84,6 +84,9 @@ api 'com.google.zxing:core:3.3.3' 代码示例 (二维码/条形码) ```Java + //跳转的默认扫码界面 + startActivityForResult(new Intent(context,CaptureActivity.class),requestCode); + //生成二维码 CodeUtils.createQRCode(content,600,logo); //生成条形码 diff --git a/lib/src/main/java/com/king/zxing/ViewfinderView.java b/lib/src/main/java/com/king/zxing/ViewfinderView.java index cdcbd01..ae221cc 100644 --- a/lib/src/main/java/com/king/zxing/ViewfinderView.java +++ b/lib/src/main/java/com/king/zxing/ViewfinderView.java @@ -28,6 +28,7 @@ import android.graphics.Paint; import android.graphics.Rect; import android.graphics.RectF; import android.graphics.Shader; +import android.support.annotation.ColorRes; import android.support.v4.content.ContextCompat; import android.text.Layout; import android.text.StaticLayout; @@ -81,10 +82,10 @@ public final class ViewfinderView extends View { //扫描区域提示文本 private String labelText; //扫描区域提示文本颜色 - private final int labelTextColor; - private final float labelTextSize; - public static int scannerStart = 0; - public static int scannerEnd = 0; + private int labelTextColor; + private float labelTextSize; + public int scannerStart = 0; + public int scannerEnd = 0; private boolean isShowResultPoint; private List possibleResultPoints; @@ -142,6 +143,22 @@ public final class ViewfinderView extends View { this.cameraManager = cameraManager; } + public void setLabelText(String labelText) { + this.labelText = labelText; + } + + public void setLabelTextColor(int color) { + this.labelTextColor = color; + } + + public void setLabelTextColorResource(@ColorRes int id){ + this.labelTextColor = ContextCompat.getColor(getContext(),id); + } + + public void setLabelTextSize(float textSize) { + this.labelTextSize = textSize; + } + @SuppressLint("DrawAllocation") @Override public void onDraw(Canvas canvas) { @@ -329,7 +346,7 @@ public final class ViewfinderView extends View { isShowResultPoint = showResultPoint; } - // /** +// /** // * Draw a bitmap with the result points highlighted instead of the live scanning display. // * // * @param barcode An image of the decoded barcode. diff --git a/lib/src/main/java/com/king/zxing/camera/CameraManager.java b/lib/src/main/java/com/king/zxing/camera/CameraManager.java index d8cb8b6..ab89a50 100644 --- a/lib/src/main/java/com/king/zxing/camera/CameraManager.java +++ b/lib/src/main/java/com/king/zxing/camera/CameraManager.java @@ -58,6 +58,7 @@ public final class CameraManager { private int requestedCameraId = OpenCameraInterface.NO_REQUESTED_CAMERA; private int requestedFramingRectWidth; private int requestedFramingRectHeight; + /** * Preview frames are delivered here, which we pass on to the registered handler. Make sure to * clear the handler so it will only receive one message. @@ -229,9 +230,11 @@ public final class CameraManager { int width = findDesiredDimensionInRange(screenResolution.x, MIN_FRAME_WIDTH, MAX_FRAME_WIDTH); int height = findDesiredDimensionInRange(screenResolution.y, MIN_FRAME_HEIGHT, MAX_FRAME_HEIGHT); - int leftOffset = (screenResolution.x - width) / 2; - int topOffset = (screenResolution.y - height) / 2; - framingRect = new Rect(leftOffset, topOffset, leftOffset + width, topOffset + height); + int size = Math.min(width,height); + + int leftOffset = (screenResolution.x - size) / 2; + int topOffset = (screenResolution.y - size) / 2; + framingRect = new Rect(leftOffset, topOffset, leftOffset + size, topOffset + size); Log.d(TAG, "Calculated framing rect: " + framingRect); } return framingRect; @@ -334,9 +337,12 @@ public final class CameraManager { if (rect == null) { return null; } + int size = Math.min(width,height); + int left = (width-size)/2; + int top = (height-size)/2; // Go ahead and assume it's YUV rather than die. - return new PlanarYUVLuminanceSource(data, width, height, 0, 0, - width, height, false); + return new PlanarYUVLuminanceSource(data, width, height, left, top, + left + size, top + size, false); } } \ No newline at end of file diff --git a/versions.gradle b/versions.gradle index 6a20242..b37229a 100644 --- a/versions.gradle +++ b/versions.gradle @@ -1,7 +1,7 @@ //App def app_version = [:] -app_version.versionCode = 3 -app_version.versionName = "1.0.2" +app_version.versionCode = 4 +app_version.versionName = "1.0.3" ext.app_version = app_version //build version