什麼是z?
在android平台做過二維碼相關子產品的肯定都熟知zxing開源項目,z是一個開源java類庫用于解析多種格式的1d/2d條形碼。目标是能夠對qr編碼、data matrix、upc的1d條形碼進行解碼。 其提供了多種平台下的用戶端包括: .net and c#、j2me、j2se和android等。其github位址是:https://github.com/zxing/zxing。目前的最新版本是3.4.0,本次我采用的是3.3.2.
z*項目裡面代碼很多,實作的功能也很多,我們的應用隻需要剝離其中的掃描子產品即可,再多一點也就是生成二維碼的功能;接下來我們就一起來精簡zxing項目,最終形成一個小的demo案例,當然江湖上已經有過n多種版本的zxing精簡項目,什麼橫屏改豎屏,繪制掃描界面,開啟閃光燈等等,并且許多都是基于zxing2.3.0來做精簡的,後續有許多更新的版本,包括自動對焦,camera管理,bug修複等等新功能;筆者使用的是zxing3.1.0版本,這裡需要說明的就是我的這版demo絕對是江湖上面還沒有出現的,也算是一點點小小的創新把,那就是去掉zxing項目中惱人的viewfinderview的繪制,使用xml布局掃描界面,添加掃描動畫,精确計算掃描區域。
打開zxing項目的檔案夾(https://github.com/zxing/zxing),可以看到如下檔案目錄:
下載下傳下來就是一個完整的zxing的包,但這個包的内容還是太大,我隻選擇了一部分放入我的程式中。
下面就是我的程式,其中必須下載下傳zxing包,圖中用紅色标出來的部分。