1. 程式人生 > 實用技巧 >程式猿媛 九:Adroid zxing 二維碼3.1整合(原始碼無刪減)

程式猿媛 九:Adroid zxing 二維碼3.1整合(原始碼無刪減)

2019獨角獸企業重金招聘Python工程師標準>>> hot3.png

Adroid zxing 二維碼3.1整合

宣告:博文為原創,文章內容為,效果展示,思路闡述,及程式碼片段。

轉載請保留原文出處http://my.oschina.net/gluoyer/blog”,謝謝!

引子:最近專案中用到二維碼,找到了最新的3.1版本zxing-GitHub,進行了整合、調整,同時筆記以備忘。

展示應用下載:程式猿媛2.1

求點選:部落格訪問9.9k+了,距離初步期望1w很近了。 一個多月的封閉開發也終於結束了,成都也雨後天晴出太陽。

特此版本去掉了下載時需要積分的情況,網站之外的tx們,方便的話,隨手點一下

花佟林雨月

實現效果:

360手機助手截圖0918_23_34_01

相關博文很多,生成jar包,簡化程式碼。度娘一下就有了。 感覺需要必要筆記,是發現:

  • 以1.6版本居多,據說3.1對4x支援更好些。
  • 簡化後,對擴充套件比較麻煩。
  • 修改豎屏後,修改的地方找起來比較麻煩。

未使用簡化版本,直接引用zxing原始碼

由於網上的簡化版本,對功能擴充套件比較麻煩,因此,直接將zxing放到了工程目錄下的extras/zxing下,只在專案中加入了目錄,複製、修改了必要的檔案,其他均引用原始碼檔案

zxing

修改豎屏後所需調整

整合過程中,發現網文提到的修改豎屏,還是有點分散的,找起還是有點麻煩。故在CameraConfigurationManager

加了一個標識方法:isPortrait(),返回true

例如,DecodeHandler.javadecode方法中需要調整,如下條件實現:

QQ截圖20140919112731

其他需要修改的地方,也如此使用isPortrait()條件,所以,只需要看下isPortrait()Call Hierarchy,就比較清晰得看到所需修改。

同時,返回false,就可以恢復到原始碼處理。

繪製掃描框

根據專案需求,需要重新繪製掃描框框,主要在ViewfinderView.java實現繪製方法,同樣條件控制,drawScanFrame區域性如下:

QQ截圖20140919113302

燈光的設定

根據原始碼中,音量鍵對燈光的開關,添加了新介面,支援標題右上角對燈光的控制:

CameraManager.java中:

QQ截圖20140919113747

以及CameraConfigurationManager.java中:

QQ截圖20140919113844

在Activity中進行必要的呼叫處理即可。

QrCaptureActivity 中掃描成功的處理

根據實際需求,掃描成功後,跳轉並將資料傳遞給新頁面,因此,只在handleDecode方法中,

QQ截圖20140919114025

在註釋資訊下面,將新頁面的跳轉就可以了。

如果有其他需求,也在這裡自行處理,應該就沒有問題了。

另外,執行zxing原始碼,可以看到它有個設定頁面,也可以根據需求,整合該設定頁面,或修改R.xml.preferences中的配置即可。

全文完,希望對您有幫助,謝謝!

展示應用下載:程式猿媛2.1

轉載請保留原文出處“http://my.oschina.net/gluoyer/blog”,謝謝!

轉載於:https://my.oschina.net/gluoyer/blog/315947