ZXing.Mobile - 如何更改相机扫描仪的尺寸?

时间:2016-07-29 15:21:55

标签: xamarin configuration xamarin.forms zxing barcode-scanner

更新

我尝试在名为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 - 但我我很难找到相关文件。

1 个答案:

答案 0 :(得分:1)

有一个ZXing示例应用,展示了如何将ZXingScannerViewZXingDefaultOverlay嵌入到Xamarin.Form的{​​{1}}中:

https://github.com/Redth/ZXing.Net.Mobile/blob/master/Samples/Forms/Core/CustomScanPage.cs

Grid