From b3165e4608c1a72280ac3b782afe35dc5511b1c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=9F=B3=E5=A4=B4?= <48025211@qq.com> Date: Thu, 12 Apr 2018 19:24:26 +0800 Subject: [PATCH] https://github.com/mylhyl/Android-Zxing/issues/44 --- .../sample/OptionsScannerActivity.java | 21 ++++++------ .../mylhyl/zxing/scanner/ScannerOptions.java | 32 +++++++++++++++++++ .../mylhyl/zxing/scanner/ViewfinderView.java | 5 ++- 3 files changed, 46 insertions(+), 12 deletions(-) diff --git a/sample/src/main/java/com/mylhyl/zxing/scanner/sample/OptionsScannerActivity.java b/sample/src/main/java/com/mylhyl/zxing/scanner/sample/OptionsScannerActivity.java index 9fa217d..9a57d06 100644 --- a/sample/src/main/java/com/mylhyl/zxing/scanner/sample/OptionsScannerActivity.java +++ b/sample/src/main/java/com/mylhyl/zxing/scanner/sample/OptionsScannerActivity.java @@ -45,24 +45,27 @@ protected void onCreate(Bundle savedInstanceState) { // mScannerView.toggleLight(true); ScannerOptions.Builder builder = new ScannerOptions.Builder(); - builder.setFrameSize(256, 256) - .setFrameCornerLength(22) - .setFrameCornerWidth(2) - .setFrameCornerColor(0xff06c1ae) - .setFrameCornerInside(true) + builder + .setFrameStrokeColor(Color.RED) + .setFrameStrokeWidth(1.5f) +// .setFrameSize(256, 256) +// .setFrameCornerLength(22) +// .setFrameCornerWidth(2) +// .setFrameCornerColor(0xff06c1ae) +// .setFrameCornerInside(true) // .setLaserLineColor(0xff06c1ae) // .setLaserLineHeight(18) // .setLaserStyle(ScannerOptions.LaserStyle.RES_LINE,R.mipmap.wx_scan_line) - .setLaserStyle(ScannerOptions.LaserStyle.RES_GRID, R.mipmap.zfb_grid_scan_line)//网格图 - .setFrameCornerColor(0xFF26CEFF)//支付宝颜色 +// .setLaserStyle(ScannerOptions.LaserStyle.RES_GRID, R.mipmap.zfb_grid_scan_line)//网格图 +// .setFrameCornerColor(0xFF26CEFF)//支付宝颜色 - .setScanFullScreen(true) +// .setScanFullScreen(true) // .setFrameHide(false) - .setFrameCornerHide(false) +// .setFrameCornerHide(false) // .setLaserMoveFullScreen(false) .setViewfinderCallback(new ScannerOptions.ViewfinderCallback() { diff --git a/zxingscanner/src/main/java/com/mylhyl/zxing/scanner/ScannerOptions.java b/zxingscanner/src/main/java/com/mylhyl/zxing/scanner/ScannerOptions.java index a1b30b4..2a2faab 100644 --- a/zxingscanner/src/main/java/com/mylhyl/zxing/scanner/ScannerOptions.java +++ b/zxingscanner/src/main/java/com/mylhyl/zxing/scanner/ScannerOptions.java @@ -45,6 +45,8 @@ public enum LaserStyle { private int laserLineHeight = DEFAULT_LASER_LINE_HEIGHT;//扫描线高度,网络样式无效,单位dp private int laserLineMoveSpeed = 6;//扫描线移动间距,默认每毫秒移动6px,单位px private boolean laserMoveFullScreen;//扫描线全屏移动,默认在扫描框内移动 + private int frameStrokeColor = Color.WHITE;//扫描边框颜色rgb值 + private float frameStrokeWidth = 1f;//扫描边框的宽度,单位px private int frameWidth;//扫描框的宽度,单位dp private int frameHeight;//扫描框的高度,单位dp private int frameCornerColor = laserLineColor;//扫描框4角颜色rgb值 @@ -98,6 +100,14 @@ public boolean isLaserMoveFullScreen() { return laserMoveFullScreen; } + public int getFrameStrokeColor() { + return frameStrokeColor; + } + + public float getFrameStrokeWidth() { + return frameStrokeWidth; + } + public int getFrameWidth() { return frameWidth; } @@ -272,6 +282,28 @@ public Builder setLaserMoveFullScreen(boolean fullScreen) { return this; } + /** + * 扫描边框颜色值,默认白色 + * + * @param color rgb颜色值 + * @return + */ + public Builder setFrameStrokeColor(int color) { + options.frameStrokeColor = color; + return this; + } + + /** + * 扫描边框宽度,默认1px + * + * @param width 单位px + * @return + */ + public Builder setFrameStrokeWidth(float width) { + options.frameStrokeWidth = width; + return this; + } + /** * 设置扫描框大小 * diff --git a/zxingscanner/src/main/java/com/mylhyl/zxing/scanner/ViewfinderView.java b/zxingscanner/src/main/java/com/mylhyl/zxing/scanner/ViewfinderView.java index f2e615f..408ac28 100644 --- a/zxingscanner/src/main/java/com/mylhyl/zxing/scanner/ViewfinderView.java +++ b/zxingscanner/src/main/java/com/mylhyl/zxing/scanner/ViewfinderView.java @@ -20,7 +20,6 @@ import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; -import android.graphics.Color; import android.graphics.Paint; import android.graphics.Point; import android.graphics.Rect; @@ -252,8 +251,8 @@ private void drawFrameCorner(Canvas canvas, Rect frame) { * @param frame */ private void drawFrame(Canvas canvas, Rect frame) { - paint.setColor(Color.WHITE);//扫描边框白色 - paint.setStrokeWidth(1); + paint.setColor(scannerOptions.getFrameStrokeColor());//扫描边框色 + paint.setStrokeWidth(scannerOptions.getFrameStrokeWidth()); paint.setStyle(Paint.Style.STROKE); canvas.drawRect(frame, paint); }