Android基于google Zxing实现各类二维码扫描效果

2019-12-10 19:06:54王振洲
易采站长站为您分析Android基于google Zxing实现各类二维码扫描效果的相关资料,需要的朋友可以参考下  

随着微信的到来,二维码越来越火爆,随处能看到二维码,比如商城里面,肯德基,餐厅等等,对于二维码扫描我们使用的是google的开源框架Zxing,我们可以去http://www.easck.com/p/zxing/下载源码和Jar包,之前我项目中的二维码扫描功能只实现了扫描功能,其UI真的是其丑无比,一个好的应用软件,其UI界面也要被大众所接纳,不然人家就不会用你的软件啦,所以说应用软件功能和界面一样都很重要,例如微信,相信微信UI被很多应用软件所模仿,我也仿照微信扫描二维码效果进行模仿,虽然没有微信做的那么精致,但是效果还是可以的,所以将自己修改UI的代码和扫描二维码的代码分享给大家,一是自己以后项目遇到同样的功能直接拷贝来用,二是给还没有加入二维码功能的人一个参考,站在巨人的肩膀上,哈哈,我之前也是站在巨人的肩膀上加上此功能,接下来跟着我一步一步来实现此项功能,里面去除了很多不必要的文件

我们先看下项目的结构

Android基于google Zxing实现各类二维码扫描效果

  • 如果你项目也想加入此功能,你直接将com.mining.app.zxing.camera,com.mining.app.zxing.decoding,com.mining.app.zxing.view这三个包拷贝到你的项目中,然后引入相对应的资源进去,我也是从我的项目中直接引用过来的,包名都没改呢,当然还需要引用Zxing.jar
  • com.example.qr_codescan包里面有一个MipcaActivityCapture,也是直接引入我之前项目的代码的,这个Activity主要处理扫描界面的类,比如,扫描成功有声音和振动等等,主要关注里面的handleDecode(Result result, Bitmap barcode)方法,扫描完成之后将扫描到的结果和二维码的bitmap当初参数传递到handleDecode(Result result, Bitmap barcode)里面,我们只需要在里面写出相对应的处理代码即可,其他的地方都不用改得,我这里处理扫描结果和扫描拍的照片
    /** 
     * 处理扫描结果 
     * @param result 
     * @param barcode 
     */ 
    public void handleDecode(Result result, Bitmap barcode) { 
      inactivityTimer.onActivity(); 
      playBeepSoundAndVibrate(); 
      String resultString = result.getText(); 
      if (resultString.equals("")) { 
        Toast.makeText(MipcaActivityCapture.this, "Scan failed!", Toast.LENGTH_SHORT).show(); 
      }else { 
        Intent resultIntent = new Intent(); 
        Bundle bundle = new Bundle(); 
        bundle.putString("result", resultString); 
        bundle.putParcelable("bitmap", barcode); 
        resultIntent.putExtras(bundle); 
        this.setResult(RESULT_OK, resultIntent); 
      } 
      MipcaActivityCapture.this.finish(); 
    }