一分钟实现扫描二维码功能
前言
二維碼掃描的功能在很多APP上都會出現(xiàn),較為常用的第三方庫是zxing,zxing很強(qiáng)大,但是有時候我們并不需要那么復(fù)雜的功能,只需要簡單的掃描、生成以及處理掃描結(jié)果,一般都是通過重寫幾個類來實(shí)現(xiàn)項(xiàng)目需求。我開發(fā)了幾個項(xiàng)目都用到了掃描二維碼的功能,第一個項(xiàng)目,寫了個完整的功能,之后的項(xiàng)目都是從第一個項(xiàng)目里面復(fù)制代碼的,幾次之后,覺得有點(diǎn)繁瑣,所以就單獨(dú)封裝成一個項(xiàng)目,傳到j(luò)center上,以后再遇到掃描二維碼的功能,只需要在gradle導(dǎo)入,即可實(shí)現(xiàn)快速開發(fā)了。
下載APP體驗(yàn) 
 
導(dǎo)入
compile 'com.hebin:hxbrzxing:1.0.1'使用
導(dǎo)入庫之后,就可以使用掃描二維碼的功能了,只需要新建一個activity,然后繼承CaptureActivity即可。
class MainActivity : CaptureActivity() {override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)} }自定義使用
如果只是簡單的繼承,那么得到的效果圖如下: 
 
這里提供了幾個可以自定義的屬性;
1. 標(biāo)題欄自定義
class MainActivity : CaptureActivity() {override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)val view = LayoutInflater.from(this@MainActivity).inflate(R.layout.simple_title,null)setTitleView(view)} }2. 背景圖片自定義
class MainActivity : CaptureActivity() {override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setBackground(R.mipmap.ic_launcher)} }3. 提示文字自定義
class MainActivity : CaptureActivity() {override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setTipText("請掃描二維碼")} }4. 附加功能
class MainActivity : CaptureActivity() {override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)val view= LayoutInflater.from(this@MainActivity).inflate(R.layout.simple_title,null)// 打開相冊,識別圖片二維碼view.tvTitle.setOnClickListener { openPhoto() }// 打開閃光燈view.tvTitle.setOnClickListener { openLight() }setTitleView(view)}}掃描結(jié)果處理
繼承CaptureActivity.ResultListener,并且在oncreat里面,寫上setListener(this)即可實(shí)現(xiàn)監(jiān)聽,然后在onResult里面做邏輯處理。
class MainActivity : CaptureActivity(), CaptureActivity.ResultListener {override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setListener(this)}override fun onResult(result: String) {if (result.contains("http")) {Toast.makeText(this@MainActivity, "跳轉(zhuǎn)到網(wǎng)頁", Toast.LENGTH_SHORT).show()} else {Toast.makeText(this@MainActivity, "這個二維碼不是網(wǎng)頁", Toast.LENGTH_SHORT).show()}} }后話
至此,只要通過簡單的幾行代碼就實(shí)現(xiàn)掃描二維碼的功能,而且這個掃描二維碼的功能,是支持連續(xù)掃描的,不需要退出重新進(jìn)入即可再次掃描。項(xiàng)目源碼已經(jīng)傳到github上了。
https://github.com/Hebin320/Zxing總結(jié)
以上是生活随笔為你收集整理的一分钟实现扫描二维码功能的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: SQL Server2014 SP2新增
- 下一篇: GC算法
