文档章节

Xamarin工程中调用Android AAR

yushulx
 yushulx
发布于 2016/12/27 11:23
字数 343
阅读 126
收藏 0

最近想尝试下用Xamarin来写Android app,通过调用Android Barcode SDK(AAR文件)创建一个简单的条形码读取工具。

绑定Android AAR文件

基本步骤

参考Binding an AAR,基本步骤如下:

  1. 创建一个Java Bindings Library工程。
  2. 添加Android AAR文件。
  3. 设置正确的Build Action。
  4. 选择目标框架。
  5. 编译工程。

DynamsoftBarcodeReader.aar转换成DBRAndroid.dll

运行Visual Studio 2015,创建工程Bindings Library (Android).

xamarin android project

下载SDK package for Android。把DynamsoftBarcodeReader.aar拖入工程中。Build Action设置成LibraryProjectZip:

xamarin android aar

编译工程可以生成DBRAndroid\bin\Debug\DBRAndroid.dll

创建简单的Android Barcode Reader

新建一个Android工程,把刚才生成的DBRAndroid.dll添加到Reference中:

xamarin android reference

双击DBRAndroid可以看到具体的类,成员以及方法:

xamarin android reference class

我这里比较偷懒,只是为了测试接口,所以就放了一张QR的图到drawable中。

如何用C#把Drawable转换成Bitmap?

使用Java的时候,代码是这样的:

Bitmap icon = BitmapFactory.decodeResource(context.getResources(), R.drawable.icon_resource);

用C#有一点不同:

Bitmap image = BitmapFactory.DecodeResource(Resources, Resource.Drawable.qr);

如何读取Barcode?

引入命名空间:

using Com.Dynamsoft.Barcode;

调用接口:

protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);
 
            // Set our view from the "main" layout resource
            SetContentView(Resource.Layout.Main);
 
            // Get our button from the layout resource,
            // and attach an event to it
            Button button = FindViewById<Button>(Resource.Id.MyButton);
 
            button.Click += delegate {
                Bitmap image = BitmapFactory.DecodeResource(Resources, Resource.Drawable.qr);
                BarcodeReader barcodeReader = new BarcodeReader("license");
                ReadResult result = barcodeReader.ReadSingle(image, Barcode.QrCode);
 
                button.Text = string.Format("{0} clicks! barcode result: {1}", count++, result.Barcodes[0].DisplayValue);
            };
        }

 

源码

https://github.com/yushulx/xamarin-aar

 

© 著作权归作者所有

yushulx
粉丝 28
博文 106
码字总数 60640
作品 0
杭州
私信 提问
Android studio如何生成aar包

在Android Studio中对一个自己库进行生成操作时将会同时生成.jar与.aar文件。 分别存储位置: *.jar:库 /build/intermediates/bundles/debug(release)/classes.jar *.aar:库 /build/outpu...

飞翔的熊blabla
2018/08/01
0
0
Android Studio安卓导出aar包与Unity 3D交互

Unity与安卓aar 包交互 Chinar 教程效果: import android.support.v7.app.AppCompatActivity;import android.os.Bundle; import com.unity3d.player.UnityPlayer;import com.unity3d.playe......

chinar-yunxi
2018/04/19
0
0
如何把项目打包成aar文件或jar文件

在Android开发中我们往往为了节省开发时间,会用直接引入其他工程中的module,避免重在新工程中开发,尤其一个团队多项目时候用到特别多,当然也有包括引入第三方jar包或者aar文件,有的时候...

2018/12/29
0
0
手机淘宝Android客户端架构

手机淘宝Android客户端有几百人开发,十几个团队。如果整个Android客户端是一个工程,那十几个团队每个人上午上班第一件事情估计就是合代码,运气不好,一天都在合代码,而且只要有一个人提交...

fneg
2015/07/04
0
8
使用 Xamarin 开发 Android 应用

过去几个月里,我开发了一款应用,这不仅仅是我的个人作品更是服务于我目前雇主Telefonica的客户,借此来提高客户的满意度。 刚开始需求很简单,就是采集数据并发送到邮件。但将应用从windo...

oschina
2014/01/16
10.1K
24

没有更多内容

加载失败,请刷新页面

加载更多

texlive安装

Installing to: D:/bin/texlive/texlive/2019Installing [001/307, time/total: ??:??/??:??]: adobemapping [2130k]Installing [002/307, time/total: 00:03/08:57]: ae [84k]Installing......

MtrS
38分钟前
2
0
运维规范

命名规范 发布流程 监控告警 故障定位 状态 日志 监控

以谁为师
今天
2
0
约瑟夫环(报数游戏)java实现

开端 公司组织考试,一拿到考题,就是算法里说的约瑟夫环,仔细想想 以前老师将的都忘了,还是自己琢磨把~ package basic.gzy;import java.util.Iterator;import java.util.LinkedList;...

无极之岚
今天
3
0
Kernel字符设备驱动框架

Linux设备分为三大类:字符设备,块设备和网络设备,这三种设备基于不同的设备框架。相较于块设备和网络设备,字符设备在kernel中是最简单的,也是唯一没有基于设备基础框架(device结构)的...

yepanl
今天
3
0
Jenkins 中文本地化的重大进展

本文首发于:Jenkins 中文社区 我从2017年开始,参与 Jenkins 社区贡献。作为一名新成员,翻译可能是帮助社区项目最简单的方法。 本地化的优化通常是较小的改动,你无需了解项目完整的上下文...

Jenkins中文社区
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部