标签:
protected  PreviewCallback previewCb = new PreviewCallback() {
		public void onPreviewFrame(byte[] data, Camera camera) {
            try {
                Camera.Parameters parameters = camera.getParameters();
                Size size = parameters.getPreviewSize();
                Image barcode = new Image(size.width, size.height, "Y800");
                barcode.setData(data);
                int result = scanner.scanImage(barcode);
                if (result != 0) {
                    previewing = false;
                    mCamera.setPreviewCallback(null);
                    mCamera.stopPreview();
                    SymbolSet symbolSet = scanner.getResults();
                    for (Symbol sym : symbolSet) {
                        try {
//                            mediaPlayer.start();
                        } catch (Exception ex) {
                            ex.printStackTrace();
                        }
                        if (scanType == LIGHT_BAR_CODE && sym.getType() == Symbol.QRCODE) {
                            SuperToastUtil.showToast(QrcodeCameraActivity.this, "只允许扫描条形码", Toast.LENGTH_LONG);
                            finish();
                            return;
                        } else if (scanType == LIGHT_QR_CODE && sym.getType() != Symbol.QRCODE) {
                            SuperToastUtil.showToast(QrcodeCameraActivity.this, "只允许扫描二维码", Toast.LENGTH_LONG);
                            finish();
                            return;
                        }
                        if (sym.getType() == Symbol.QRCODE) {
                            codeType = LIGHT_QR_CODE;
                        } else {
                            codeType = LIGHT_BAR_CODE;
                        }
                        String code = sym.getData();
						try {
							Size previewSize = camera.getParameters().getPreviewSize();
							YuvImage yuvimage=new YuvImage(data, ImageFormat.NV21, previewSize.width, previewSize.height, null);
							ByteArrayOutputStream baos = new ByteArrayOutputStream();
							yuvimage.compressToJpeg(new Rect(0, 0, previewSize.width, previewSize.height), 80, baos);
							byte[] jdata = baos.toByteArray();
							Bitmap bmp = BitmapFactory.decodeByteArray(jdata, 0, jdata.length);
							BitmapUtil.saveFile(QrcodeCameraActivity.this,bmp, getLogFileNameDateFormat() + ".jpg");
						} catch (Exception e) {
							e.printStackTrace();
						}
                        handleDecodeInternally(code);
					}
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
		}
	};
	try {
							Size previewSize = camera.getParameters().getPreviewSize();
							YuvImage yuvimage=new YuvImage(data, ImageFormat.NV21, previewSize.width, previewSize.height, null);
							ByteArrayOutputStream baos = new ByteArrayOutputStream();
							yuvimage.compressToJpeg(new Rect(0, 0, previewSize.width, previewSize.height), 80, baos);
							byte[] jdata = baos.toByteArray();
							Bitmap bmp = BitmapFactory.decodeByteArray(jdata, 0, jdata.length);
							BitmapUtil.saveFile(QrcodeCameraActivity.this,bmp, getLogFileNameDateFormat() + ".jpg");
						} catch (Exception e) {
							e.printStackTrace();
						}
标签:
原文地址:http://www.cnblogs.com/lixiaodaoaaa/p/4875027.html