這段時間我作的一個app須要用到二維碼掃描,可是找遍了咱們的51CTO都沒有找到合適的文章,我想把我本身利用zxing作二維碼掃描的方法提供出來供你們參考。
什麼是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),能夠看到以下文件目錄:git
下載下來就是一個完整的Zxing的包,但這個包的內容仍是太大,我只選擇了一部分放入個人程序中。
下面就是個人程序,其中必須下載zxing包,圖中用紅色標出來的部分。github