public override void ViewDidLoad () { //Create a new instance of our scanner scanner = new MobileBarcodeScanner(this.NavigationController); //Setup our button buttonDefaultScan = new UIButton(UIButtonType.RoundedRect); buttonDefaultScan.Frame = new RectangleF(20, 80, 280, 40); buttonDefaultScan.SetTitle("Scan with Default View", UIControlState.Normal); buttonDefaultScan.TouchUpInside += (sender, e) => { //Tell our scanner to use the default overlay scanner.UseCustomOverlay = false; //We can customize the top and bottom text of the default overlay scanner.TopText = "Hold camera up to barcode to scan"; scanner.BottomText = "Barcode will automatically scan"; //Start scanning scanner.Scan ().ContinueWith((t) => { //Our scanning finished callback if (t.Status == System.Threading.Tasks.TaskStatus.RanToCompletion) HandleScanResult(t.Result); }); }; buttonCustomScan = new UIButton(UIButtonType.RoundedRect); buttonCustomScan.Frame = new RectangleF(20, 20, 280, 40); buttonCustomScan.SetTitle("Scan with Custom View", UIControlState.Normal); buttonCustomScan.TouchUpInside += (sender, e) => { //Create an instance of our custom overlay customOverlay = new CustomOverlayView(); //Wireup the buttons from our custom overlay customOverlay.ButtonTorch.TouchUpInside += delegate { scanner.ToggleTorch(); }; customOverlay.ButtonCancel.TouchUpInside += delegate { scanner.Cancel(); }; //Tell our scanner to use our custom overlay scanner.UseCustomOverlay = true; scanner.CustomOverlay = customOverlay; scanner.Scan ().ContinueWith((t) => { //Our scanning finished callback if (t.Status == System.Threading.Tasks.TaskStatus.RanToCompletion) HandleScanResult(t.Result); }); }; this.View.AddSubview(buttonDefaultScan); this.View.AddSubview(buttonCustomScan); }
public void ScanQRCodeContinuously(Func <IMobileBarcodeScanner, ZXing.Result, bool> action) { var scanner = new ZXing.Mobile.MobileBarcodeScanner(); scanner.ScanContinuously((result) => { //scanner.Torch(true); var url = result.Text; if (action == null || action(scanner, result)) { scanner.Cancel(); } }); //scanner.Torch(true); }
public async Task <string> ScanAsync() { var scanner = new ZXing.Mobile.MobileBarcodeScanner { UseCustomOverlay = true }; var options = new ZXing.Mobile.MobileBarcodeScanningOptions() { TryHarder = true, AutoRotate = false, UseFrontCameraIfAvailable = false, CameraResolutionSelector = new CameraResolutionSelectorDelegate(SelectLowestResolutionMatchingDisplayAspectRatio), PossibleFormats = new List <ZXing.BarcodeFormat>() { ZXing.BarcodeFormat.QR_CODE } }; View scanView = LayoutInflater.From(Application.Context).Inflate(Resource.Layout.ScanView, null); ImageView imgLine = scanView.FindViewById <ImageView>(Resource.Id.imgLine); ImageView imgClose = scanView.FindViewById <ImageView>(Resource.Id.imgClose); imgClose.Click += delegate { scanner.Cancel(); }; scanner.CustomOverlay = scanView; ObjectAnimator objectAnimator = ObjectAnimator.OfFloat(imgLine, "Y", 0, DpToPixels(240)); objectAnimator.SetDuration(2500); objectAnimator.RepeatCount = -1; objectAnimator.SetInterpolator(new LinearInterpolator()); objectAnimator.RepeatMode = ValueAnimatorRepeatMode.Restart; objectAnimator.Start(); ZXing.Result scanResults = await scanner.Scan(CrossCurrentActivity.Current.Activity, options); if (scanResults != null) { return(scanResults.Text); } return(string.Empty); }
public async Task<BarCodeResult> Read(BarCodeReadConfiguration config, CancellationToken cancelToken) { config = config ?? BarCodeReadConfiguration.Default; var controller = ((UIViewController)((ExtendedNavigationPage)App.GameNavigation).ViewController); var scanner = new MobileBarcodeScanner(controller); scanner.UseCustomOverlay = true; scanner.CustomOverlay = new BarCodeScannerOverlay(new CGRect(0, 0, (nfloat)App.GameNavigation.Bounds.Width, (nfloat)App.GameNavigation.Bounds.Height), "", "", config.CancelText, config.FlashlightText, () => scanner.Cancel(), () => scanner.ToggleTorch()); scanner.CancelButtonText = config.CancelText; scanner.FlashButtonText = config.FlashlightText; cancelToken.Register(scanner.Cancel); var result = await scanner.Scan(this.GetXingConfig(config)); return (result == null || String.IsNullOrWhiteSpace(result.Text) ? BarCodeResult.Fail : new BarCodeResult(result.Text, FromXingFormat(result.BarcodeFormat)) ); }
public async Task <string> ScanAsync() { var scanner = new ZXing.Mobile.MobileBarcodeScanner { UseCustomOverlay = true }; var options = new ZXing.Mobile.MobileBarcodeScanningOptions() { TryHarder = true, AutoRotate = false, UseFrontCameraIfAvailable = false, CameraResolutionSelector = new CameraResolutionSelectorDelegate(SelectLowestResolutionMatchingDisplayAspectRatio), PossibleFormats = new List <ZXing.BarcodeFormat>() { ZXing.BarcodeFormat.QR_CODE } }; View scanView = LayoutInflater.From(Application.Context).Inflate(Resource.Layout.ScanView, null); ImageView imgClose = scanView.FindViewById <ImageView>(Resource.Id.imgClose); imgClose.Click += delegate { scanner.Cancel(); }; scanner.CustomOverlay = scanView; ZXing.Result scanResults = await scanner.Scan(CrossCurrentActivity.Current.Activity, options); if (scanResults != null) { return(scanResults.Text); } return(string.Empty); }
public override void ViewDidLoad() { //Create a new instance of our scanner scanner = new MobileBarcodeScanner(this.NavigationController); Root = new RootElement ("ZXing.Net.Mobile") { new Section { new StyledStringElement ("Scan with Default View", async () => { //Tell our scanner to use the default overlay scanner.UseCustomOverlay = false; //We can customize the top and bottom text of the default overlay scanner.TopText = "Hold camera up to barcode to scan"; scanner.BottomText = "Barcode will automatically scan"; //Start scanning var result = await scanner.Scan (); HandleScanResult(result); }), new StyledStringElement ("Scan Continuously", () => { //Tell our scanner to use the default overlay scanner.UseCustomOverlay = false; //Tell our scanner to use our custom overlay scanner.UseCustomOverlay = true; scanner.CustomOverlay = customOverlay; var opt = new MobileBarcodeScanningOptions (); opt.DelayBetweenContinuousScans = 3000; //Start scanning scanner.ScanContinuously (opt, true, HandleScanResult); }), new StyledStringElement ("Scan with Custom View", async () => { //Create an instance of our custom overlay customOverlay = new CustomOverlayView(); //Wireup the buttons from our custom overlay customOverlay.ButtonTorch.TouchUpInside += delegate { scanner.ToggleTorch(); }; customOverlay.ButtonCancel.TouchUpInside += delegate { scanner.Cancel(); }; //Tell our scanner to use our custom overlay scanner.UseCustomOverlay = true; scanner.CustomOverlay = customOverlay; var result = await scanner.Scan (); HandleScanResult(result); }), new StyledStringElement ("Scan with AVCapture Engine", async () => { //Tell our scanner to use the default overlay scanner.UseCustomOverlay = false; //We can customize the top and bottom text of the default overlay scanner.TopText = "Hold camera up to barcode to scan"; scanner.BottomText = "Barcode will automatically scan"; //Start scanning var result = await scanner.Scan (true); HandleScanResult (result); }), new StyledStringElement ("Generate Barcode", () => { NavigationController.PushViewController (new ImageViewController (), true); }) } }; }
public override void ViewDidLoad () { if (is7orgreater) EdgesForExtendedLayout = UIRectEdge.None; NavigationItem.Title = "ZXing.Net.Mobile"; //Create a new instance of our scanner scanner = new MobileBarcodeScanner(this.NavigationController); //Setup our button buttonDefaultScan = new UIButton(UIButtonType.RoundedRect); buttonDefaultScan.Frame = new RectangleF(20, 80, 280, 40); buttonDefaultScan.SetTitle("Scan with Default View", UIControlState.Normal); buttonDefaultScan.TouchUpInside += async (sender, e) => { //Tell our scanner to use the default overlay scanner.UseCustomOverlay = false; //We can customize the top and bottom text of the default overlay scanner.TopText = "Hold camera up to barcode to scan"; scanner.BottomText = "Barcode will automatically scan"; //Start scanning var result = await scanner.Scan (); HandleScanResult(result); }; buttonCustomScan = new UIButton(UIButtonType.RoundedRect); buttonCustomScan.Frame = new RectangleF(20, 20, 280, 40); buttonCustomScan.SetTitle("Scan with Custom View", UIControlState.Normal); buttonCustomScan.TouchUpInside += async (sender, e) => { //Create an instance of our custom overlay customOverlay = new CustomOverlayView(); //Wireup the buttons from our custom overlay customOverlay.ButtonTorch.TouchUpInside += delegate { scanner.ToggleTorch(); }; customOverlay.ButtonCancel.TouchUpInside += delegate { scanner.Cancel(); }; //Tell our scanner to use our custom overlay scanner.UseCustomOverlay = true; scanner.CustomOverlay = customOverlay; var result = await scanner.Scan (); HandleScanResult(result); }; if (is7orgreater) { buttonAVCaptureScan = new UIButton (UIButtonType.RoundedRect); buttonAVCaptureScan.Frame = new RectangleF (20, 140, 280, 40); buttonAVCaptureScan.SetTitle ("Scan with AVCapture Engine", UIControlState.Normal); buttonAVCaptureScan.TouchUpInside += async (sender, e) => { //Tell our scanner to use the default overlay scanner.UseCustomOverlay = false; //We can customize the top and bottom text of the default overlay scanner.TopText = "Hold camera up to barcode to scan"; scanner.BottomText = "Barcode will automatically scan"; //Start scanning var result = await scanner.Scan (true); HandleScanResult (result); }; } this.View.AddSubview (buttonDefaultScan); this.View.AddSubview (buttonCustomScan); if (is7orgreater) this.View.AddSubview (buttonAVCaptureScan); }
void buttonSample3_Click (object sender, EventArgs e) { var scanner = new MobileBarcodeScanner(this); var overlay = (LinearLayout)this.LayoutInflater.Inflate(Resource.Layout.ScanOverlayLayout, null, false); var buttonCancel = overlay.FindViewById<Button>(Resource.Id.buttonCancelScan); var buttonFlash = overlay.FindViewById<Button>(Resource.Id.buttonToggleFlash); buttonCancel.Click += (object sender2, EventArgs e2) => { scanner.Cancel(); }; buttonFlash.Click += (object sender2, EventArgs e2) => { scanner.ToggleTorch(); }; scanner.UseCustomOverlay = true; scanner.CustomOverlay = overlay; scanner.Scan().ContinueWith((t) => { ShowMessage(t.Result != null ? "Scanned: " + t.Result.Text : "No Barcode Scanned"); }); }