代码拉取完成,页面将自动刷新
同步操作将从 Jenly/MLKit 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
/*
* Copyright (C) Jenly, MLKit Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.king.mlkit.vision.app.barcode
import android.content.Intent
import android.graphics.Point
import android.widget.ImageView
import com.google.mlkit.vision.barcode.Barcode
import com.king.mlkit.vision.app.R
import com.king.mlkit.vision.barcode.QRCodeCameraScanActivity
import com.king.mlkit.vision.barcode.utils.PointUtils
import com.king.mlkit.vision.camera.AnalyzeResult
import com.king.mlkit.vision.camera.CameraScan
/**
* @author <a href="mailto:jenly1314@gmail.com">Jenly</a>
*/
class QRCodeScanningActivity : QRCodeCameraScanActivity() {
private lateinit var ivResult: ImageView
override fun initUI() {
super.initUI()
ivResult = findViewById<ImageView>(R.id.ivResult)
}
override fun initCameraScan() {
super.initCameraScan()
cameraScan.setPlayBeep(true)
.setVibrate(true)
.bindFlashlightView(ivFlashlight)
}
override fun getLayoutId(): Int {
return R.layout.qrcode_scan_activity
}
override fun onBackPressed() {
if(viewfinderView.isShowPoints){//如果是结果点显示时,用户点击了返回键,则认为是取消选择当前结果,重新开始扫码
ivResult.setImageResource(0)
viewfinderView.showScanner()
cameraScan.setAnalyzeImage(true)
return
}
super.onBackPressed()
}
override fun onScanResultCallback(result: AnalyzeResult<MutableList<Barcode>>) {
cameraScan.setAnalyzeImage(false)
val results = result.result
//取预览当前帧图片并显示,为结果点提供参照
ivResult.setImageBitmap(previewView.bitmap)
val points = ArrayList<Point>()
for ((index,data) in results.withIndex()) {
val rect = results[index].boundingBox
//将实际的结果中心点坐标转换成界面预览的坐标
val point = PointUtils.transform(rect.centerX(), rect.centerY(), result.bitmap.width, result.bitmap.height, viewfinderView.width, viewfinderView.height)
points.add(point)
}
//设置Item点击监听
viewfinderView.setOnItemClickListener {
//显示点击Item将所在位置扫码识别的结果返回
val intent = Intent()
intent.putExtra(CameraScan.SCAN_RESULT,results[it].displayValue)
setResult(RESULT_OK,intent)
finish()
/*
显示结果后,如果需要继续扫码,则可以继续分析图像
*/
// ivResult.setImageResource(0)
// viewfinderView.showScanner()
// cameraScan.setAnalyzeImage(true)
}
//显示结果点信息
viewfinderView.showResultPoints(points)
if(results.size == 1){//只有一个结果直接返回
val intent = Intent()
intent.putExtra(CameraScan.SCAN_RESULT,results[0].displayValue)
setResult(RESULT_OK,intent)
finish()
}
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。