這是Zxing 在Fragment中實(shí)現(xiàn)二維碼掃描下載,二維碼現(xiàn)在越來(lái)越火爆,使用的越發(fā)廣泛,對(duì)于二維碼二維碼的生成與解析,有多種途徑,這里我選擇用google老大的ZXing。
Zxing 在Fragment中實(shí)現(xiàn)二維碼掃描是其中劉超大神使用ZXing寫(xiě)了一個(gè)快速集成二維碼掃描的工具類(lèi),實(shí)現(xiàn)其核心的實(shí)現(xiàn)掃描的功能。使用時(shí)通過(guò)調(diào)用二維碼工具類(lèi),幾行代碼就可以實(shí)現(xiàn)二維碼掃描的功能。
•可打開(kāi)默認(rèn)二維碼掃描頁(yè)面
•支持對(duì)圖片Bitmap的掃描功能
•支持對(duì)UI的定制化操作
•支持對(duì)條形碼的掃描功能
•支持生成二維碼操作
•支持控制閃光燈開(kāi)關(guān)
最近項(xiàng)目有個(gè)需求是要在fragment中掃描二維碼,之前看到網(wǎng)上有資源是在Activity實(shí)現(xiàn)的,很好用,所以今天抽空把它改到fragment里面去了。
改的過(guò)程并沒(méi)有很復(fù)雜,就是把a(bǔ)ctivity和fragment中有區(qū)別的地方抽象出來(lái)一個(gè)共用的接口,然后在activity和fragment中去不同的實(shí)現(xiàn)相關(guān)代碼,然后在fragment中用getActivity()代替直接調(diào)用。
啟動(dòng)掃描的Activity是用startActivityForResult啟動(dòng)的,掃描完畢后,原來(lái)的是直接setResult并且把Activity給finish掉,但是在fragment中,可能并不是這樣的需求,我就把掃描結(jié)果用廣播發(fā)出來(lái)了,反正掃描的結(jié)果也只是一個(gè)String,開(kāi)發(fā)者只需要在fragment中注冊(cè)一個(gè)廣播就好。
大概過(guò)程就是這樣,具體也說(shuō)不清,我把原來(lái)的項(xiàng)目和我改好的項(xiàng)目一起發(fā)給大家,大家看代碼就知道了。