This commit is contained in:
kunfei 2023-10-07 10:51:05 +08:00
parent 275e492c9f
commit d85295b61c

View File

@ -3,12 +3,10 @@ package io.legado.app.ui.qrcode
import com.google.zxing.Result import com.google.zxing.Result
import com.king.camera.scan.AnalyzeResult import com.king.camera.scan.AnalyzeResult
import com.king.camera.scan.CameraScan import com.king.camera.scan.CameraScan
import com.king.camera.scan.analyze.Analyzer
import com.king.zxing.BarcodeCameraScanFragment import com.king.zxing.BarcodeCameraScanFragment
import com.king.zxing.DecodeConfig import com.king.zxing.DecodeConfig
import com.king.zxing.DecodeFormatManager import com.king.zxing.DecodeFormatManager
import com.king.zxing.analyze.MultiFormatAnalyzer import com.king.zxing.analyze.MultiFormatAnalyzer
import com.king.zxing.analyze.QRCodeAnalyzer
class QrCodeFragment : BarcodeCameraScanFragment() { class QrCodeFragment : BarcodeCameraScanFragment() {
@ -27,19 +25,6 @@ class QrCodeFragment : BarcodeCameraScanFragment() {
cameraScan.setAnalyzer(MultiFormatAnalyzer(decodeConfig)) cameraScan.setAnalyzer(MultiFormatAnalyzer(decodeConfig))
} }
override fun createAnalyzer(): Analyzer<Result> {
// 初始化解码配置
val decodeConfig = DecodeConfig()
decodeConfig.setHints(DecodeFormatManager.QR_CODE_HINTS) //如果只有识别二维码的需求这样设置效率会更高不设置默认为DecodeFormatManager.DEFAULT_HINTS
.setFullAreaScan(false) //设置是否全区域识别默认false
.setAreaRectRatio(0.8f) //设置识别区域比例默认0.8,设置的比例最终会在预览区域裁剪基于此比例的一个矩形进行扫码识别
.setAreaRectVerticalOffset(0).areaRectHorizontalOffset =
0 //设置识别区域水平方向偏移量默认为0为0表示居中可以为负数
// BarcodeCameraScanActivity默认使用的MultiFormatAnalyzer这里可以改为使用QRCodeAnalyzer
return QRCodeAnalyzer(decodeConfig)
}
override fun onScanResultCallback(result: AnalyzeResult<Result>) { override fun onScanResultCallback(result: AnalyzeResult<Result>) {
cameraScan.setAnalyzeImage(false) cameraScan.setAnalyzeImage(false)
(activity as? QrCodeActivity)?.onScanResultCallback(result.result) (activity as? QrCodeActivity)?.onScanResultCallback(result.result)