前言
Zxing是google提供的二维码框架,具有很多与二维码相关的功能。本未分享一种方式,可在连续二维码扫描时,提示供用户可选择的弹窗。
依赖
引入如下依赖
dependencies {
...
implementation ‘com.journeyapps:zxing-android-embedded:4.1.0‘
implementation ‘com.afollestad.material-dialogs:core:0.9.6.0‘
implementation ‘com.afollestad.material-dialogs:commons:0.9.6.0‘
}
- 前面的是Zxing框架,后面是一套弹窗框架,个人非常喜欢,Material风格。具体访问:https://github.com/afollestad/material-dialogs
连续扫描
Zxing提供的demo中有一个连续扫描的Activity(ContinuousCaptureActivity),我们只需把他复制过来,进行一些修改就可。
- 声明一个Handle,并在OnCreate方法中添加实现:
handler =object :Handler(){
override fun handleMessage(msg: Message) {
super.handleMessage(msg)
when (msg.what) {
11 -> {
val dialog = MaterialDialog.Builder(this@ScanQRCode).apply {
title("操作提示:")
cancelable(false)
content("是否继续?")
positiveText("继续")
onPositive { _, _ ->
Log.d("tomas", "点击继续")
}
negativeText("取消")
onNegative { _, _ ->
Log.d("tomas", "点击取消")
finish()
}
build()
}
dialog.show()
}
}
}
}
- 然后在回调函数中,发送msg
val message = Message()
message.what=11
handler.sendMessage(message)
- 最终实现效果,每次扫描完会弹出dialog: