在Android Studio中集成Zxing

1.1、集成方法:

在项目的build.gradle中添加以下依赖:

[java]  view plain  copy
  1. compile 'com.journeyapps:zxing-android-embedded:3.5.0'  
  2. compile 'com.google.zxing:core:3.3.0'  

需手动Sync一下Gradle。

1.2、使用示例:

[java]  view plain  copy
  1. public class MainActivity extends AppCompatActivity {  
  2.   
  3.     @Override  
  4.     protected void onCreate(Bundle savedInstanceState) {  
  5.         super.onCreate(savedInstanceState);  
  6.         setContentView(R.layout.activity_main);  
  7.   
  8.         //new IntentIntegrator(this).initiateScan();  
  9.   
  10.         Button btnScan=(Button) findViewById(R.id.btnScan);  
  11.         btnScan.setOnClickListener(new View.OnClickListener() {  
  12.             @Override  
  13.             public void onClick(View v) {  
  14.                 new IntentIntegrator(MainActivity.this).initiateScan(); //初始化扫描  
  15.             }  
  16.         });  
  17.     }  
  18.   
  19.     回调获取扫描得到的条码值  
  20.     @Override  
  21.    protected void onActivityResult(int requestCode, int resultCode, Intent data) {  
  22.         IntentResult result = IntentIntegrator.parseActivityResult(requestCode, resultCode, data);  
  23.         if(result != null) {  
  24.             if(result.getContents() == null) {  
  25.                 Toast.makeText(this"扫码取消!", Toast.LENGTH_LONG).show();  
  26.             } else {  
  27.                 Toast.makeText(this"扫描成功,条码值: " + result.getContents(), Toast.LENGTH_LONG).show();  
  28.             }  
  29.         } else {  
  30.             super.onActivityResult(requestCode, resultCode, data);  
  31.         }  
  32.     }  
  33. }  

1.3、竖屏扫描的处理:

默认是横屏的,如果要调整成竖屏,新建一个 Empty Activity(命名为 ScanActivity),内容如下:

[java]  view plain  copy
  1. import com.journeyapps.barcodescanner.CaptureActivity;  
  2. public class ScanActivity extends CaptureActivity {  
  3.     @Override  
  4.     protected void onCreate(Bundle savedInstanceState) {  
  5.         super.onCreate(savedInstanceState);  
  6.     }  
  7. }  
打开AndroidManifest.xml文件,编辑 ScanActivity 属性如下:
[java]  view plain  copy
  1. <activity   
  2. android:name=".ScanActivity"  
  3. android:screenOrientation="portrait"  
  4. android:stateNotNeeded="true"  
  5. android:theme="@style/zxing_CaptureTheme"  
  6. android:windowSoftInputMode="stateAlwaysHidden"/>  

将按钮点击事件中的初始化扫描语句

[java]  view plain  copy
  1. new IntentIntegrator(MainActivity.this).initiateScan();  
修改如下:

[java]  view plain  copy
  1. IntentIntegrator integrator = new IntentIntegrator(MainActivity.this);  
  2. // 设置要扫描的条码类型,ONE_D_CODE_TYPES:一维码,QR_CODE_TYPES-二维码  
  3. integrator.setDesiredBarcodeFormats(IntentIntegrator.ONE_D_CODE_TYPES);  
  4. integrator.setCaptureActivity(ScanActivity.class);  
  5. integrator.setPrompt("请扫描"); //底部的提示文字,设为""可以置空  
  6. integrator.setCameraId(0); //前置或者后置摄像头  
  7. integrator.setBeepEnabled(false); //扫描成功的「哔哔」声,默认开启  
  8. integrator.setBarcodeImageEnabled(true);  
  9. integrator.initiateScan();  

1.4、权限

如果调用相机不成功,可以尝试在AndroidManifest.xml中添加相机的使用权限:

[java]  view plain  copy
  1. <span style="font-size:10px;"><uses-permission android:name="android.permission.CAMERA"></uses-permission> </span>  

1.5、其他

IntentIntegrator有两个方法是forFragment和forSupportFragment应该是用于支持Fragment和支持库版本的Fragment,如果需要在Fragment中使用Zxing可以研究一下。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值