一、引言

在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.效果图

Xamarin.Android 入门之:Bind java的jar文件+Android显示gif图片的更多相关文章

  1. Java的jar文件安装成windows 服务

    Java的jar文件安装成windows 服务: 1.下载:nssm,复制到jar文件目录下 2. jar文件目录下创建bat文件[run.bat],内容为[java -jar 文件名.jar] 3. ...

  2. Java 图片爬虫,java打包jar文件

    目录 1. Java 图片爬虫,制作 .jar 文件 spider.java 制作 jar 文件 添加执行权限 1. Java 图片爬虫,制作 .jar 文件 spider.java spider.j ...

  3. Java 执行jar文件出现版本错误信息

    Java 执行jar文件出现版本错误信息 一.问题 执行jar文件出现如下错误信息: 二.解决方案 是因为在创建工程的时候选择的jdk编译版本,和执行jar环境的jdk版本不一致: 更改工程的jdk版 ...

  4. java 打包jar文件以在没有安装JDK或JRE的机子上运行

    前言: java号称“一次编译,到处运行”,但这有个前提,那就是你的机子上得安装java环境.对于开发人员或其他一些比较懂计算机的人来说这没什么,但是对于一些不懂计算机的人来说这会很麻烦,他们更希望的 ...

  5. [Java] 在 jar 文件中读取 resources 目录下的文件

    注意两点: 1. 将资源目录添加到 build path,确保该目录下的文件被拷贝到 jar 文件中. 2. jar 内部的东西,可以当作 stream 来读取,但不应该当作 file 来读取. 例子 ...

  6. Java对Jar文件的操作[转]

    原文地址:http://www.cnblogs.com/mailingfeng/archive/2012/04/24/2122160.html  String dirPath = System.get ...

  7. 通过java打开jar 文件

    JAR文件是许多信息经过封装后形成的捆绑体.也就是一个压缩文件. JAR 文件格式提供了许多优势和功能,其中很多是传统的压缩格式如ZIP或者RAR所没有提供的,JAR文件 还用于安排和封装库.组件和插 ...

  8. 关于Java项目打包成Runnable jar文件后运行时图片不显示的问题

    现象:在eclipse中能够无误运行,但导出Runnable jar后运行jar包时不显示图片. 原因:路径问题. 方法1: 新建一个文件夹.文件夹中放那个jar包和image文件夹.在这种情况下,双 ...

  9. 导出含有图片的项目成jar文件后运行,图片不显示

    在编写完Java程序后,打包成Jar时发布,会发现找不到Jar文件中的图片和文本文件,其原因是程序中载入图片或文本文件时,使用了以当前工作路径为基准的方式来指定文件和路径.这与用户运行Jar包时的当前 ...

随机推荐

  1. Discuz X3.2 SEO设置 title 不支持空格的解决方法

    很多使用 Discuz X3.2 的同学都发现这么一个问题:在后台SEO设置-title设定的时候,即使你在连字符两侧输入了空格,在前台也显示不出来,很多同学纠结这个问题,今天终于找到了解决方法,在此 ...

  2. JS 获取select(多选下拉)中所选值的示例代码

    通过js获取select(多选下拉)中所选值,具体实现如下,有需要的朋友可以参考下,希望对大家有所帮助 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML ...

  3. spring boot单元测试(转)

    Junit这种老技术,现在又拿出来说,不为别的,某种程度上来说,更是为了要说明它在项目中的重要性.凭本人的感觉和经验来说,在项目中完全按标准都写Junit用例覆盖大部分业务代码的,应该不会超过一半. ...

  4. PHP版本中的VC6,VC9,VC11,TS,NTS区别

    以windows为例,看看下载到得php zip的文件名 php-5.4.4-nts-Win32-VC9-x86.zip VC6:legacy Visual Studio 6 compiler,是使用 ...

  5. 虚拟机开机提示:This virtual machine appears to be in use

    [原因]:由于电脑非正常关机导致,重新启动虚拟机就会出现This virtual machine appears to be in use的提示.[解决方法]:到虚拟机的安装目录下删除所有.lck的目 ...

  6. C#获取数据库中的Instance

    如果我现在要写个代码生成器,连接数据库,那你得知道有哪些Database存在吧,不然咋整? 在VS中我们添加一个ADO.NET的实体模型 在选择数据库名称的时候就是获取了数据库中Database In ...

  7. cocos2.2.3中创建精灵对象的三大类方法

    1.众生相,皆精灵 2.精灵的类继承关系 class CCSprite : public CCNode, public CCNodeRGBA, public CCTextureProtocol 3.创 ...

  8. knockoutjs select onchange 下拉级联

    1.绑定数据源 <select name="" class="xlb02" data-bind="options: $root.dataSour ...

  9. [原创] zabbix学习之旅六:如何解决zabbix server在内网,而邮件发送服务器在外网的问题

    通过前面的文章,你已经可以快速地搭建一个报警系统,并能正常的收到报警邮件了.不过在很多企业级环境下,邮件发送服务器往往放在外网,而zabbix server放置在内网,在这种情况下,zabbix的报警 ...

  10. [转载]eclipse中设置文件的编码格式为utf-8

    免责声明:     本文转自网络文章,转载此文章仅为个人收藏,分享知识,如有侵权,请联系博主进行删除.     原文作者:ryxxlong     原文地址:http://ryxxlong.iteye ...