UPDATE:ZXing.Mobile - Как изменить размер сканера камеры?
Я попытался реализации этого в методе App.cs называется OpenCameraScanner (вы могли бы назвать это по нажатию кнопки на страницу, с которой вы хотите сканировать):
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);
}
Однако, когда этот метод вызывается, экран, который открывается, пустой белый, и вы не видите его вид камеры. Не знаете почему?
Я использую ZXing.Mobile в проекте Xamarin.Forms (для прошивки прямо сейчас) для функциональных возможностей сканирования камеры на IPad.
В настоящее время он у меня работает прекрасно со следующими 2 строки:
var scanner = new ZXing.Mobile.MobileBarcodeScanner();
var result = await scanner.Scan();
Однако, когда камера открыта для сканирования, она занимает весь экран IPad, который является действительно большим.
Вопрос: Есть ли способ настроить размер наложения на камеру? (Так что это не полный экран)
Я вижу, что метод scanner.Scan()
принимает необязательный параметр опции типа ZXing.Mobile.MobileBarcodeScanningOptions
- я пытался играть с этим, но единственно возможной соответствующей опцией есть CameraResolutionSelector
- но у меня действительно трудно найти документацию по этому поводу.
я вижу, так это выглядит, как мне нужно использовать пользовательские overlay (https://github.com/Redth/ZXing.Net.Mobile/blob/master/readme.md#custom-overlays) – jbyrd
@jbyrd Вы можете использовать 'ZXingDefaultOverlay' по умолчанию, если хотите, если это не соответствует ваш стиль приложения, да, вы можете создать собственный. – SushiHangover
Я все еще немного смущен тем, как это работает, хотя - прямо сейчас, все, что мне нужно сделать, это вызвать две строки, которые вы видите в моем оригинальном посте. При этом мы представляем страницу (обычно ли Scan() открывает страницу?). Если я создаю пользовательскую страницу, то как эти 2 строки вписываются в ... или мне нужно делать что-то совершенно другое? – jbyrd