步骤一:
gradleZxing
加入以下代码
compile 'com.journeyapps:zxing-android-embedded:3.0.2@aar'
compile 'com.google.zxing:core:3.2.0'
步骤二:
生成控件调用
<Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignEnd="@+id/button" android:layout_alignRight="@+id/button" android:layout_below="@+id/button" android:layout_marginBottom="8dp" android:layout_marginEnd="8dp" android:layout_marginStart="8dp" android:layout_marginTop="8dp" android:onClick="onScanBarcode" android:text="条形码" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintVertical_bias="0.232" /> <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:layout_marginBottom="8dp" android:layout_marginStart="8dp" android:onClick="onScanQrcode" android:text="二维码" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="@+id/button2" app:layout_constraintHorizontal_bias="1.0" app:layout_constraintStart_toStartOf="@+id/button2" app:layout_constraintTop_toBottomOf="@+id/button2" app:layout_constraintVertical_bias="0.176" />
步骤三:设置照相机权限:
<uses-permission android:name="android.permission.CAMERA"></uses-permission>
步骤四:加入实例来获取扫描结果:
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { IntentResult result = IntentIntegrator.parseActivityResult(requestCode, resultCode, data); if(result != null) { if(result.getContents() == null) { Toast.makeText(this, "扫码取消!", Toast.LENGTH_LONG).show(); } else { Toast.makeText(this, "扫描成功,条码值: " + result.getContents(), Toast.LENGTH_LONG).show(); } } else { // This is important, otherwise the result will not be passed to the fragment super.onActivityResult(requestCode, resultCode, data); } }
步骤五:控件调用
public void onScanBarcode(View v){ IntentIntegrator integrator = new IntentIntegrator(this); integrator.setDesiredBarcodeFormats(IntentIntegrator.ONE_D_CODE_TYPES); integrator.setPrompt("扫描条形码"); integrator.setCameraId(0); integrator.setBeepEnabled(false); integrator.initiateScan(); } public void onScanQrcode(View v){ IntentIntegrator integrator = new IntentIntegrator(this); integrator.setDesiredBarcodeFormats(IntentIntegrator.QR_CODE_TYPES); integrator.setPrompt("扫描二维码"); integrator.setCameraId(0); integrator.setBeepEnabled(false); integrator.initiateScan(); }
声明:
IntentIntegrator integrator = new IntentIntegrator(this);
// 设置要扫描的条码类型,ONE_D_CODE_TYPES:一维码,QR_CODE_TYPES-二维码
integrator.setDesiredBarcodeFormats(IntentIntegrator.ONE_D_CODE_TYPES);
"扫描条形码");
0// 使用默认的相机
integrator.setBeepEnabled(false); // 扫到码后播放提示音
integrator.initiateScan();
上面为属性值