一、引言

在xamarin开发的时候,有时我们想要做一个功能,但是这个功能已经有人用java写好了,并且打包成了jar文件。那么我们可以直接把对方的jar文件拿过来用而不是重新用c#写代码。

关于bind jar更详细的内容可以查看https://developer.xamarin.com/guides/android/advanced_topics/binding-a-java-library/ ,这边只是做最简单的绑定。

二、Bind JAR

现在我想做一个功能,使在手机中显示gif图片,普通的Android控件是没有办法显示的,于是我去百度搜索,最后搜到了,找到一个别人做好的代码并编译成了jar文件,于是我需要把他的jar文件bind到我的vs项目中。

1.新建一个项目,在resource文件夹的drawable子文件夹下放入一个gif文件

2.在当前解决方案中再新建一个项目,但在项目选项中选中“binding library”

会创建如下项目。

3.找到jars文件夹,把jar文件放进去,并设置其属性的“生成操作”为“EmbeddedJar”。然后重新生成项目,如果不报错表示bind成功。

4.在我们的第一个创建的项目中引用用来bind的项目

引用之后双击引用名称可以看到命名空间和里面的类和方法名称。

三、完成demo

1.在main.axml文件中加入以下代码,com.ant.liao.GifView表示引用com.ant.liao的 GifView控件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<com.ant.liao.GifView
android:id="@+id/gif1"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:paddingRight="14px"
android:enabled="false"
android:visibility="visible" />
<TextView
android:id="@+id/tsxt"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:paddingRight="4px"
android:enabled="false"
android:text="click the Angel" />
</LinearLayout>

2.在MainActivity.cs文件中添加以下代码

using System;
using Android.App;
using Android.Content;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.OS;
using Com.Ant.Liao;
namespace GifDemo
{
[Activity(Label = "GifDemo", MainLauncher = true, Icon = "@drawable/icon")]
public class MainActivity : Activity, ImageView.IOnClickListener
{ private Com.Ant.Liao.GifView gif;//定义gif控件
private Boolean f = true;
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle); SetContentView(Resource.Layout.Main);
gif = FindViewById<Com.Ant.Liao.GifView>(Resource.Id.gif1);
//gif.SetShowDimension(500, 500);
gif.SetGifImageType(Com.Ant.Liao.GifView.GifImageType.Cover);
gif.SetGifImage(Resource.Drawable.demo);
gif.SetOnClickListener(this);//设置点击暂停
} public void OnClick(View v)
{
if (f)
{
gif.ShowCover();
f = false;
}
else
{
gif.ShowAnimation();
f = true;
}
}
}
}

3.效果图

最新文章

  1. Redis数据结构详解之Set(三)
  2. EA中的模板管理
  3. oracle 行列转换的运用
  4. IOS Storyboard使用-模拟登录、注册、混合使用
  5. hdu 5475 An easy problem(暴力 || 线段树区间单点更新)
  6. c++ string类型转换为char *类型
  7. backbone 1.1.2 api
  8. windows系统下安装Eclipse for PHP
  9. SpringBoot 中 get/post 请求处理方式,以及requestboy为Json时的处理
  10. Vertica系列: Vertica DB连接负载均衡
  11. Python基础5-常用模块
  12. HDU 1075 What Are You Talking About (stl之map映射)
  13. ASP_NET实现界面无刷新的DropdownList两级联动效果
  14. NodeMCU学习(三) : 进入网络世界
  15. css案例 - mask遮罩层的华丽写法
  16. every day a practice —— morning
  17. RabbitMQ 端口号解析
  18. u-boot中网口处理--硬件部分
  19. JSON 解析的两种方法
  20. table添加横向滚动条

热门文章

  1. PHP连接SQL Server(sqlsrv)
  2. mongodb 3.x WiredTiger存储优化测试
  3. PHP获取和操作配置文件php.ini的几个函数
  4. 11g RAC R2 之Linux DNS 配置
  5. django 更新model
  6. Java 包(package)详解
  7. 【Go】 格式处理
  8. tomcat配置及使用 环境变量设置
  9. JDBC 学习笔记(二)—— 大数据+存储过程+批处理+事务管理
  10. 2109&amp;2535: [Noi2010]Plane 航空管制 - BZOJ