Bläddra i källkod

CutOutBottomOffset taken from the overlay parameter of QRView

flutter-beta
Tihomirov 5 år sedan
förälder
incheckning
e9570b7919
2 ändrade filer med 30 tillägg och 12 borttagningar
  1. +23
    -6
      android/src/main/kotlin/net/touchcapture/qr/flutterqr/QRView.kt
  2. +7
    -6
      lib/src/qr_code_scanner.dart

+ 23
- 6
android/src/main/kotlin/net/touchcapture/qr/flutterqr/QRView.kt Visa fil

@@ -88,7 +88,11 @@ class QRView(private val context: Context, messenger: BinaryMessenger, private v
"getCameraInfo" -> getCameraInfo(result)
"getFlashInfo" -> getFlashInfo(result)
"getSystemFeatures" -> getSystemFeatures(result)
"changeScanArea" -> changeScanArea(call.arguments as Double, result)
"changeScanArea" -> changeScanArea(
call.argument<Double>("cutOutSize")!!,
call.argument<Double>("cutOutBottomOffset")!!,
result,
)
else -> result.notImplemented()
}
}
@@ -248,16 +252,29 @@ class QRView(private val context: Context, messenger: BinaryMessenger, private v
}
}

private fun changeScanArea(newSize: Double, result: MethodChannel.Result) {
setScanAreaSize(newSize, newSize)
private fun changeScanArea(
cutOutSize: Double,
cutOutBottomOffset: Double,
result: MethodChannel.Result
) {
setScanAreaSize(cutOutSize, cutOutSize, cutOutBottomOffset)
result.success(true)
}

private fun setScanAreaSize(dpScanAreaWidth: Double, dpScanAreaHeight: Double) {
barcodeView?.setFramingRect (convertDpToPixels(dpScanAreaWidth), convertDpToPixels(dpScanAreaHeight), convertDpToPixels(150.0))
private fun setScanAreaSize(
dpScanAreaWidth: Double,
dpScanAreaHeight: Double,
dpCutOutBottomOffset: Double
) {
barcodeView?.setFramingRect(
convertDpToPixels(dpScanAreaWidth),
convertDpToPixels(dpScanAreaHeight),
convertDpToPixels(dpCutOutBottomOffset),
)
}

private fun convertDpToPixels(dp: Double) = (dp * context.resources.displayMetrics.density).toInt()
private fun convertDpToPixels(dp: Double) =
(dp * context.resources.displayMetrics.density).toInt()

private fun hasCameraPermission(): Boolean {
return permissionGranted ||


+ 7
- 6
lib/src/qr_code_scanner.dart Visa fil

@@ -342,13 +342,14 @@ class QRViewController {
throw CameraException(e.code, e.message);
}
} else if (defaultTargetPlatform == TargetPlatform.android) {
final cutOutSize = overlay?.cutOutSize;
if (cutOutSize != null) {
await channel.invokeMethod(
'changeScanArea',
cutOutSize,
);
if (overlay == null) {
return false;
}
await channel.invokeMethod('changeScanArea', {
'cutOutSize': overlay.cutOutSize,
'cutOutBottomOffset': overlay.cutOutBottomOffset
});
return true;
}
return false;
}


Laddar…
Avbryt
Spara