• 关于Android Studio 基于Zxing开发二维码


    zxing是github上一个二维码处理开源项目,我们使用这个库来处理二维码

    如果你使用的是Android Studio,可以参考本文进行配置。并附一个小例子。

    首先在build.gradle(Moudle:app)中添加下列依赖:

      repositories {  

       mavenCentral()  

          maven {  

              url "http://dl.bintray.com/journeyapps/maven"  

          }  

      }  

     

      dependencies {  

          // Supports Android 4.0.3 and later (API level 15)  

        compile 'com.journeyapps:zxing-android-embedded:2.0.1@aar'  

        // Supports Android 2.1 and later (API level 7), but not optimal for later Android versions.  

         // If you only plan on supporting Android 4.0.3 and up, you don't need to include this.  

       compile 'com.journeyapps:zxing-android-legacy:2.0.1@aar'  

          // Convenience library to launch the scanning and encoding Activities.  

          // It automatically picks the best scanning library from the above two, depending on the  

          // Android version and what is available.  

          compile 'com.journeyapps:zxing-android-integration:2.0.1@aar'  

          // Version 3.0.x of zxing core contains some code that is not compatible on Android 2.2 and earlier.  

          // This mostly affects encoding, but you should test if you plan to support these versions.  

          // Older versions e.g. 2.2 may also work if you need support for older Android versions.  

          compile 'com.google.zxing:core:3.0.1'  

      }  


    然后在AndroidManifest.xml文件<manifest>标签内部,<application>标签前面加入以下代码,申请权限

     
    1. <uses-permission android:name="android.permission.CAMERA"/>  
    2. <uses-permission android:name="android.permission.VIBRATE"/>  
    3. <uses-permission android:name="android.permission.INTERNET"/>  


    这样就行了!

    接下来是用法:

    在按钮的onClick事件中添加代码,点击后会跳转到扫描界面:

    1. @Override  
    2.   public void onClick(View v) {  
    3.         //扫描操作  
    4.         IntentIntegrator integrator = new IntentIntegrator(MainActivity.this);  
    5.         integrator.initiateScan();  
    6.     }  

    然后重写下列函数,用来处理解码后的信息:

     
    1. @Override  
    2. protected void onActivityResult(int requestCode, int resultCode, Intent data) {  
    3.     IntentResult scanResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, data);  
    4.     if (scanResult != null) {  
    5.         String result = scanResult.getContents();  
    6.         Log.d("code", result);  
    7.         Toast.makeText(this,result, Toast.LENGTH_LONG).show();  
    8.     }  
    9. }  


    变量result就是二维码解码后的信息。

    请用真机调试。

    另外,zxing中设置的是扫描时横屏。通常我们不希望横屏,网上一般的修改方法是直接修改源代码。但是现在我们用的是gradle添加依赖的方式,所以我现在暂时没有想到办法。如果有知道的盆友望不吝赐教!

    原文: http://blog.csdn.net/AeroYoung/article/details/51144758

  • 相关阅读:
    【牛客网】Finding Hotel
    【牛客网】Longest Common Subsequence
    【ZOJ】4012 Your Bridge is under Attack
    【LOJ】#2210. 「HNOI2014」江南乐
    可能是一篇(抄来的)min25学习笔记
    【LOJ】#3020. 「CQOI2017」小 Q 的表格
    【51nod】1602 矩阵方程的解
    【51nod】1634 刚体图
    【51nod】1407 与与与与
    【51nod】1776 路径计数
  • 原文地址:https://www.cnblogs.com/alone-01/p/5942040.html
Copyright © 2020-2023  润新知