@Override public void restartPreview() { mScannerView.drawViewfinder(); }
@Override public void decodeSucceeded(Result rawResult, Bitmap barcode, float scaleFactor) { mScannerView.handleDecode(rawResult, barcode, scaleFactor); }
public ScannerView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); init(context, attrs, defStyle); }
mScannerView.setOnScannerCompletionListener(this); int scanMode = extras.getInt(EXTRA_SCAN_MODE); showThumbnail = extras.getBoolean(EXTRA_SHOW_THUMBNAIL); mScannerView.setMediaResId(R.raw.beep);//设置扫描成功的声音 mScannerView.setDrawText("将二维码放入框内", true); mScannerView.setDrawTextColor(Color.RED); mScannerView.setScanMode(Scanner.ScanMode.QR_CODE_MODE); } else if (scanMode == 2) { mScannerView.setScanMode(Scanner.ScanMode.PRODUCT_MODE); mScannerView.isShowResThumbnail(showThumbnail); mScannerView.isScanFullScreen(extras.getBoolean(EXTRA_SCAN_FULL_SCREEN)); mScannerView.isHideLaserFrame(extras.getBoolean(EXTRA_HIDE_LASER_FRAME)); mScannerView.setLaserLineResId(R.mipmap.wx_scan_line);//线图 break; case EXTRA_LASER_LINE_MODE_1: mScannerView.setLaserGridLineResId(R.mipmap.zfb_grid_scan_line);//网格图 mScannerView.setLaserFrameBoundColor(0xFF26CEFF);//支付宝颜色 break; case EXTRA_LASER_LINE_MODE_2: mScannerView.setLaserColor(Color.RED); break;
/** * A valid barcode has been found, so give an indication of success and show * the results. * * @param rawResult The contents of the barcode. * @param scaleFactor amount by which thumbnail was scaled * @param barcode A greyscale bitmap of the camera data which was decoded. */ void handleDecode(Result rawResult, Bitmap barcode, float scaleFactor) { //扫描成功 if (mScannerCompletionListener != null) { //转换结果 mScannerCompletionListener.onScannerCompletion(rawResult, Scanner.parseResult(rawResult), barcode); } if (mScannerOptions.getMediaResId() != 0) { if (mBeepManager == null) { mBeepManager = new BeepManager(getContext()); mBeepManager.setMediaResId(mScannerOptions.getMediaResId()); } mBeepManager.playBeepSoundAndVibrate(); } if (barcode != null && mScannerOptions.isShowQrThumbnail()) { mViewfinderView.drawResultBitmap(barcode); drawResultPoints(barcode, scaleFactor, rawResult); } }
private void init(Context context, AttributeSet attrs, int defStyle) { mSurfaceView = new CameraSurfaceView(context, this); mSurfaceView.setId(android.R.id.list); addView(mSurfaceView); mViewfinderView = new ViewfinderView(context, attrs); RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(context, attrs); layoutParams.addRule(RelativeLayout.ALIGN_TOP, mSurfaceView.getId()); layoutParams.addRule(RelativeLayout.ALIGN_BOTTOM, mSurfaceView.getId()); addView(mViewfinderView, layoutParams); mScannerOptionsBuilder = new ScannerOptions.Builder(); mScannerOptions = mScannerOptionsBuilder.build(); }
if (points.length == 2) { paint.setStrokeWidth(4.0f); drawLine(canvas, paint, points[0], points[1], scaleFactor); } else if (points.length == 4 && (rawResult.getBarcodeFormat() == BarcodeFormat.UPC_A || rawResult.getBarcodeFormat() == BarcodeFormat.EAN_13)) { drawLine(canvas, paint, points[0], points[1], scaleFactor); drawLine(canvas, paint, points[2], points[3], scaleFactor); } else { paint.setStrokeWidth(10.0f);