diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser index 435043e..f9f763c 100644 Binary files a/.idea/caches/build_file_checksums.ser and b/.idea/caches/build_file_checksums.ser differ diff --git a/README.md b/README.md index c95ff23..68f0492 100644 --- a/README.md +++ b/README.md @@ -36,17 +36,17 @@ ZXingLite for Android 是ZXing的精简版,优化扫码和生成二维码功 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