android QRCode
16lz
2022-01-27
1.加载静态库和初始化 ImageScanner.
static {System.loadLibrary("iconv");}// net.sourceforge.zbar.ConfigmImageScanner = new ImageScanner();mImageScanner.setConfig(0, Config.X_DENSITY, 3);mImageScanner.setConfig(0, Config.Y_DENSITY, 3);
2.打开Camera设置previewcallback.
try {mCamera.setPreviewDisplay(mSurfaceHolder);} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}mCamera.setPreviewCallback(previewCallback);mCamera.startPreview();
3.定义previewcallback.
public Camera.PreviewCallback previewCallback = new Camera.PreviewCallback() {@Overridepublic void onPreviewFrame(byte[] data, Camera camera) {// TODO Auto-generated method stubif (!isPass) {Camera.Parameters parameters = camera.getParameters();Size size = parameters.getPreviewSize();Image barcode = new Image(size.width, size.height, "Y800");barcode.setData(data);int result = mImageScanner.scanImage(barcode);if (result != 0) {String mDecodeQRCode = "";SymbolSet syms = mImageScanner.getResults();for (Symbol sym : syms) {mDecodeQRCode = sym.getData();Log.i("W", "HDMI_Decode--> " + mDecodeQRCode);Toast.makeText(MainActivity.this, "QRCode: " + mDecodeQRCode, Toast.LENGTH_SHORT).show();if (mDecodeQRCode != null && !isPass) {// if (mDecodeQRCode.equals(mCurQR)) {resetCamera();isPass = true;//playSound();// }}break;}}}}};
程序需要用到Zbar.jar。
更多相关文章
- Android(安卓)app开机启动
- android之simpleAdaper应用
- Android简单的Fragment嵌套Fragment(Viewpager+Fragement)
- SearchView 自动展开和弹出输入法
- Android(安卓)XUtils的cookie
- android wpa_supplicant 流程分析
- android wpa_supplicant 流程分析
- Android(安卓)seekbar 滑动时上方显示进度
- Android(安卓)BaseAdapter使用及listview优化