文档章节

Xamarin.android扫描二维码,条形码

l
 littleluoron
发布于 2015/05/09 14:26
字数 366
阅读 302
收藏 1

前些日子,闲来无聊就玩了下Xamarin.android扫描二维码,条形码功能,所以制作了一个demo

效果很好,速度快,准确性高。

程序获取地址:http://item.taobao.com/item.htm?spm=a1z10.1-c.w4004-9287888495.12.fWWy9f&id=45185930621

直接看图先。

http://item.taobao.com/item.htm?spm=a1z10.1-c.w4004-9287888495.12.fWWy9f&id=45185930621

主要代码:

[Activity (Label = "ZXing.Net.Mobile", MainLauncher = true, Theme="@android:style/Theme.Holo.Light", ConfigurationChanges=ConfigChanges.Orientation|ConfigChanges.KeyboardHidden)]
    public class Activity1 : Activity
    {
        Button buttonScanCustomView;
        Button buttonScanDefaultView;
        Button buttonFragmentScanner;

        MobileBarcodeScanner scanner;

        TextView txtViewDefualt;
        TextView txtViewCustom;
        TextView txtViewFragment;
        protected override void OnCreate (Bundle bundle)
        {
            base.OnCreate (bundle);

            // Set our view from the "main" layout resource
            SetContentView (Resource.Layout.Main);

            txtViewDefualt = FindViewById < TextView >( Resource.Id.txtViewDefualt);
            txtViewCustom = FindViewById<TextView>(Resource.Id.txtViewCustom);
            txtViewFragment = FindViewById<TextView>(Resource.Id.txtViewFragment);

            //Create a new instance of our Scanner
            scanner = new MobileBarcodeScanner(this);

            buttonScanDefaultView = this.FindViewById<Button>(Resource.Id.buttonScanDefaultView);
            buttonScanDefaultView.Click += async delegate {
                
                //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 the camera up to the barcode\nAbout 6 inches away";
                scanner.BottomText = "Wait for the barcode to automatically scan!";

                //Start scanning
                var result = await scanner.Scan();
                txtViewDefualt.Text = result.Text;
                HandleScanResult(result);
            };

            Button flashButton;
            View zxingOverlay;

            buttonScanCustomView = this.FindViewById<Button>(Resource.Id.buttonScanCustomView);
            buttonScanCustomView.Click += async delegate {

                //Tell our scanner we want to use a custom overlay instead of the default
                scanner.UseCustomOverlay = true;

                //Inflate our custom overlay from a resource layout
                zxingOverlay = LayoutInflater.FromContext(this).Inflate(Resource.Layout.ZxingOverlay, null);

                //Find the button from our resource layout and wire up the click event
                flashButton = zxingOverlay.FindViewById<Button>(Resource.Id.buttonZxingFlash);
                flashButton.Click += (sender, e) => scanner.ToggleTorch();

                //Set our custom overlay
                scanner.CustomOverlay = zxingOverlay;

                //Start scanning!
                var result = await scanner.Scan();
                txtViewCustom.Text = result.Text;
                HandleScanResult(result);
            };

            buttonFragmentScanner = FindViewById<Button> (Resource.Id.buttonFragment);
            buttonFragmentScanner.Click += delegate {
                StartActivity (typeof (FragmentActivity));    
            };
        }

        void HandleScanResult (ZXing.Result result)
        {
            string msg = "";

            if (result != null && !string.IsNullOrEmpty(result.Text))
                msg = "Found Barcode: " + result.Text;
            else
                msg = "Scanning Canceled!";

            this.RunOnUiThread(() => Toast.MakeText(this, msg, ToastLength.Short).Show());
        }
    }


程序获取地址:http://item.taobao.com/item.htm?spm=a1z10.1-c.w4004-9287888495.12.fWWy9f&id=45185930621

© 著作权归作者所有

l
粉丝 2
博文 17
码字总数 5650
作品 0
广州
私信 提问
关于iOS原生条形码扫描问题,以及条形码和二维码的区别

本文记录的问题是: 当AVFoundation使用多译码器扫描的时候。不管有没有设置扫描区域(setRectOfInterest:),二维码可以在扫描区域的任意位置响应扫描成功,但是条形码却不行,只能在扫码区域...

碎碎Ooo
2018/07/10
0
0
二维码生成与扫描--AYScandCode

带颜色,logo 的二维码、条形码生成以及扫描 如果使用二维码扫描请在 info.plist 文件添加 (获取相机权限) <key>NSCameraUsageDescription</key> <string>App需要您的同意,才能访问相机</s...

别情花如依丶
2017/01/06
719
0
iOS - QRCode 二维码

1、QRCode 在 iOS7 以前,在 iOS 中实现二维码和条形码扫描,我们所知的有,两大开源组件 ZBar 与 ZXing。iOS7 之后可以利用系统原生 API 生成二维码, iOS8 之后可以生成条形码, 系统默认生成...

仟0123
2016/09/15
0
0
使用iOS原生二维码扫描做开发,有的条形码扫描不出来

使用iOS原生二维码扫描做开发,扫描二维码没有问题,扫描条形码有的可以扫出来,但有的条形码扫描不出来是什么原因? output.metadataObjectTypes = output.availableMetadataObjectTypes 已经设...

zhunjiee
2016/05/19
607
1
Android之条形码、二维码扫描框架

文章大纲 一、条形码、二维码扫描框架介绍 二、条形码、二维码的区别和组成结构介绍 三、条形码、二维码扫描框架应用场景 四、BGAQRCode-Android框架实战 五、项目源码下载 六、参考文章 一、...

故事爱人
05/28
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring Boot + Mybatis-Plus 集成与使用(二)

前言: 本章节介绍MyBatis-Puls的CRUD使用。在开始之前,先简单讲解下上章节关于Spring Boot是如何自动配置MyBatis-Plus。 一、自动配置 当Spring Boot应用从主方法main()启动后,首先加载S...

伴学编程
昨天
7
0
用最通俗的方法讲spring [一] ──── AOP

@[TOC](用最通俗的方法讲spring [一] ──── AOP) 写这个系列的目的(可以跳过不看) 自己写这个系列的目的,是因为自己是个比较笨的人,我曾一度怀疑自己的智商不适合干编程这个行业.因为在我...

小贼贼子
昨天
7
0
Flutter系列之在 macOS 上安装和配置 Flutter 开发环境

本文为Flutter开发环境在macOS下安装全过程: 一、系统配置要求 想要安装并运行 Flutter,你的开发环境需要最低满足以下要求: 操作系统:macOS(64位) 磁盘空间:700 MB(不包含 IDE 或其余...

過愙
昨天
6
0
OSChina 周六乱弹 —— 早上儿子问我他是怎么来的

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @凉小生 :#今日歌曲推荐# 少点戾气,愿你和这个世界温柔以待。中岛美嘉的单曲《僕が死のうと思ったのは (曾经我也想过一了百了)》 《僕が死の...

小小编辑
昨天
2.7K
16
Excption与Error包结构,OOM 你遇到过哪些情况,SOF 你遇到过哪些情况

Throwable 是 Java 中所有错误与异常的超类,Throwable 包含两个子类,Error 与 Exception 。用于指示发生了异常情况。 Java 抛出的 Throwable 可以分成三种类型。 被检查异常(checked Exc...

Garphy
昨天
42
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部