[原创]Android使用ZXing连续扫描时,弹出Dialog供用户判断

前言

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提供的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:

posted @ 2021-03-27 08:38  Tomas_L  阅读(289)  评论(0编辑  收藏  举报