| 5 | 1/1 | 返回列表 |
| 查看: 2314 | 回復(fù): 9 | |||||
| 當(dāng)前只顯示滿足指定條件的回帖,點(diǎn)擊這里查看本話題的所有回帖 | |||||
qqhegg榮譽(yù)版主 (文壇精英)
珊瑚小美-----小元家的九妹
|
[交流]
android學(xué)習(xí)筆記----ZXing(一) 已有4人參與
|
||||
|
這是轉(zhuǎn)載自博客園的一位園友的隨筆,因?yàn)樽罱趯W(xué)習(xí)所以便收了過來 http://www.cnblogs.com/liuan/archive/2012/01/05/2312714.html android入門:zxing學(xué)習(xí)筆記(一) 對于剛開始學(xué)習(xí)android開發(fā)的童鞋們來說,若有一個(gè)簡單而又全面的android工程能來剖析,那就是再好不過了,zxing就是不錯(cuò)得例子。 zxing的源碼可以到google code上下載,整個(gè)源碼check out 下來,里面有各個(gè)平臺的源碼,ios的,android的。當(dāng)然我們需要的就是android代碼。http://code.google.com/p/zxing/ 將android的工程導(dǎo)入到eclipse中,導(dǎo)入完成后,eclipse會顯示各種錯(cuò)誤,這是缺少core文件夾里面的核心庫文件所致,在project中創(chuàng)建文件夾core,再將zxing源碼中得core文件夾下得代碼導(dǎo)入進(jìn)來,這樣就可以了。 上面這個(gè)過程看一下我的截圖是android1,因?yàn)槲壹拥焦こ汤锩娴臅r(shí)候沒有成功,所以就把它單獨(dú)拷了出來,然后將缺失的兩個(gè)工程文件復(fù)制進(jìn)去,但是錯(cuò)誤特別多 解決辦法http://www.cnblogs.com/tankaixio ... /10/31/1865807.html 這是博客園的另外一個(gè)園友的帖子,解決了這個(gè)問題,對于string中的問題解決辦法 http://www.cnblogs.com/goin/archive/2011/06/10/2078007.html 如果遇到unable resolved target-X,則是你的avd版本問題,可以在project.propertities修改target值。clean下就ok。 如上的都是zxing android代碼分析的準(zhǔn)備,下面的則是正式開始。 如圖:為整個(gè)android工程的代碼,android入門就重這些代碼著手。其中主要關(guān)注的是android,camera,encode,result文件夾。 程序啟動的流程:加載main activity,在此類中創(chuàng)建CaptureActivityHandler對象,該對象啟動相機(jī),實(shí)現(xiàn)自動聚焦,創(chuàng)建DecodeThread線程,DecodeThread創(chuàng)建Decodehandler,這個(gè)對象就獲取從相機(jī)得到的原始byte數(shù)據(jù),開始解碼的第一步工作,從獲取的byte中解析qr圖來,并解析出qr圖中的字符,將這塊沒有分析的字符拋送到CaptureActivityHandler中handle,該類調(diào)用main activity的decode函數(shù)完成對字符的分析,最后顯示在界面上(刷新UI,最好在UI線程里完成)。這樣一個(gè)解析qr圖的過程并完成。 下面具體分析整個(gè)過程。重點(diǎn)之處有main activity,camera. 程序啟動的第一個(gè)activity便是:CaptureActivity,有點(diǎn)類似于c中的main函數(shù),在此是main activity。這個(gè)acitvity做的主要的事便是:加載掃描各種條形碼,二維碼的一個(gè)界面,啟動一個(gè)處理獲取一維碼二維碼信息的線程,完成對于獲取的圖像信息進(jìn)行解碼,最后再將解碼的信息顯示在界面上。 完成界面的加載主要在于onCreate,和onResume函數(shù)中,這涉及到了一個(gè)activity的生命周期,以后再具體分析。首先調(diào)用onCreate,再調(diào)用onResume,在onResume中會判斷這個(gè)activity是由什么啟動的,可能是其他的app觸發(fā)了,也可能是用戶直接啟動的。這樣就初始化了三個(gè)變量,一是source,便是啟動activity的源,一是decodeFormats,指出解碼的方式,是qr,還是其他的等等,最后一個(gè)是:charactreset,即是對于這些生成qr圖的字符的編碼方式。若沒有對core中得代碼修改,用該程序解析GB2312編碼的字符則會亂碼。亂碼的解決后面將提到。 界面的加載中有兩個(gè)很關(guān)鍵的類。surfaceview 和 ViewFinderView,前面的是用來加載從底層硬件獲取的相機(jī)取景的圖像,后面的是自定義的view,實(shí)現(xiàn)了掃描時(shí)的界面,不停的刷新,并將識別的一些數(shù)據(jù),如定位的點(diǎn)回調(diào)顯示在界面上。 PS:YY下木蟲確實(shí)不適合做程序的,畢竟不是程序員們熟悉的網(wǎng)站做的順手些,帖工程代碼,不太方便呵呵 |
android學(xué)習(xí)筆記 | android資料 |

榮譽(yù)版主 (知名作家)
綺麗宮的神棍

|
夢 |

榮譽(yù)版主 (文壇精英)
珊瑚小美-----小元家的九妹

| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 085600,材料與化工321分求調(diào)劑 +9 | 大饞小子 2026-03-28 | 9/450 |
|
|---|---|---|---|---|
|
[考研] 346求調(diào)劑 一志愿070303有機(jī)化學(xué) +3 | 蘿卜燉青菜 2026-03-28 | 3/150 |
|
|
[考研] 求化學(xué)調(diào)劑 +4 | wulanna 2026-03-28 | 4/200 |
|
|
[考研] 求調(diào)劑 +6 | 蘆lty 2026-03-25 | 7/350 |
|
|
[考研] 339求調(diào)劑 +6 | 烤麥芽 2026-03-27 | 8/400 |
|
|
[考研] 085405 考的11408求各位老師帶走 +3 | Qiu學(xué)ing 2026-03-28 | 3/150 |
|
|
[考研]
|
孅華 2026-03-22 | 17/850 |
|
|
[考研] 328求調(diào)劑 +7 | 嗯滴的基本都 2026-03-27 | 7/350 |
|
|
[考研] 285求調(diào)劑 +4 | AZMK 2026-03-27 | 7/350 |
|
|
[考研] 食品工程專碩一志愿中海洋309求調(diào)劑 +3 | 小張zxy張 2026-03-26 | 5/250 |
|
|
[考研] 305求調(diào)劑 +5 | 哇盧卡庫 2026-03-26 | 5/250 |
|
|
[考研] 一志愿鄭大085600,310分求調(diào)劑 +5 | 李瀟可 2026-03-26 | 5/250 |
|
|
[考研] 292求調(diào)劑 +4 | 求求了收下我吧?/a> 2026-03-26 | 4/200 |
|
|
[考研] 一志愿北化求調(diào)劑 +3 | Jsman 2026-03-22 | 3/150 |
|
|
[考研] 調(diào)劑 +4 | 柚柚yoyo 2026-03-26 | 4/200 |
|
|
[考研] 生物學(xué) 296 求調(diào)劑 +4 | 朵朵- 2026-03-26 | 6/300 |
|
|
[考研] 材料科學(xué)與工程 317求調(diào)劑 +4 | JKSOIID 2026-03-26 | 4/200 |
|
|
[考研] 上海電力大學(xué)材料防護(hù)與新材料重點(diǎn)實(shí)驗(yàn)室招收調(diào)劑研究生(材料、化學(xué)、電化學(xué),環(huán)境) +4 | 我愛學(xué)電池 2026-03-23 | 4/200 |
|
|
[考研] 361求調(diào)劑 +3 | Glack 2026-03-22 | 3/150 |
|
|
[考研] 一志愿重慶大學(xué)085700資源與環(huán)境,總分308求調(diào)劑 +7 | 墨墨漠 2026-03-23 | 8/400 |
|