更新
我尝试在名为OpenCameraScanner的App.cs方法中实现此功能(您可以通过单击要扫描的页面上的按钮来调用此方法):
App.cs
------------------------------------------------
public static ZXingScannerPage ScanPage;
public static ZXing.Result ScanResult;
public static async void OpenCameraScanner()
{
ScanPage = new ZXingScannerPage(customOverlay: customOverlay);
ScanPage.OnScanResult += (result) =>
{
ScanPage.IsScanning = false;
ScanResult = result;
Device.BeginInvokeOnMainThread(() =>
{
App.CurrentApp.CurrentPage.Navigation.PopModalAsync();
App.CurrentApp.CurrentPage.DisplayAlert("Scanned Barcode", result.Text, "OK");
});
};
var scanPage = new NavigationPage(ScanPage);
await App.CurrentApp.CurrentPage.Navigation.PushModalAsync(ScanPage);
}
但是,调用此方法时,打开的屏幕为空白,您无法看到其背后的摄像头视图。不确定为什么?
我正在Xamarin.Forms项目中使用ZXing.Mobile(目前适用于iOS),用于在iPad上进行相机扫描功能。
目前,我通过以下两行开展工作:
var scanner = new ZXing.Mobile.MobileBarcodeScanner();
var result = await scanner.Scan();
但是,当相机处于打开状态进行扫描时,它会占用整个iPad屏幕,这非常大。
问题:有没有办法调整相机叠加层的大小? (所以它不是全屏)
我看到scanner.Scan()
方法采用ZXing.Mobile.MobileBarcodeScanningOptions
类型的可选选项参数 - 我试过玩弄它,但唯一可能相关的选项是CameraResolutionSelector
- 但我我很难找到相关文件。
答案 0 :(得分:1)
有一个ZXing示例应用,展示了如何将ZXingScannerView
和ZXingDefaultOverlay
嵌入到Xamarin.Form
的{{1}}中:
https://github.com/Redth/ZXing.Net.Mobile/blob/master/Samples/Forms/Core/CustomScanPage.cs
Grid