Android(Xamarin)之旅(一)

原文:Android(Xamarin)之旅(一)

Xamarin废话我就不多说了。

  就是一款编写Android和IOS应用的IDE,从Visual Studio2010就开始有个这个插件。只要发展什么的,我觉得在这里说还不如自己去百度呢。

入正题:

一、安装和配置(以Visual Studio Pro 2015为例)

  Visual Studio2015直接提供了这个插件的选择项,稍微提示一下,如果要安装的话,最好准备好十个小时的打算,而且是网速不错的情况下,因为要下载Android api和 Java sdk等相关的组件,是很耗时的,当然,可以分步骤装,比如,先安装默认的配置,只安装默认的C#配置项,然后再修复的时候,点击安装,再选择Xamarin,其实这样的目的只不过是为了让视觉误差而已,如果网速不够,还是很慢很慢的。

 如图,在此情况下

    

就是本来安装好C#默认配置的情况下,再次运行安装包,会有三个按钮 '修改'、'修复'、'卸载',此时我们选择修改,然后再跨平台移动开发的Xamarin前面勾选就可以了,至于Android SDK和Java SDK,强烈建议手动下载。

  为了方便期间,直接去 http://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html 下载java sdk,去百度搜索一下 Android Studio,就可以下载Android sdk等等相关的东西了。安装完成之后会出现 SDK Manage、AVD Manager,这对于我们来说已经够用了。

  android studio具体安装:http://www.cnblogs.com/mfryf/archive/2013/05/20/3089143.html

  安装完成之后,要下载SDK和android虚拟机校验。完成之后,就可以配置,如果是直接一次性安装的,是不需要配置,如果是分开的,则可以打开Visual studio2015在 “工具”→“选项” 里面找到Xamarin,然后分别配置一下。

    

    

  其中,包含android下载,就是sdk更新,和虚拟机管理等等。网上有很多办法。我这里给大家提供 API 23的Host方式,网上找到的一般都是API19之前的,我也找了很久,才找到API 23 的代理方式。

  路径:C:\Windows\System32\Drivers\etc  在这个文件夹下面的hosts文件,右键,记事本或者其他的文本编辑器打开,在最后添加上

  74.125.20.31 dl-ssl.google.com
  74.125.136.138 developer.android.com
  203.208.41.128 dl.google.com

  这三个地址就可以了,请注意,将这个三个地址加到Hosts文件的后面就可以了

二、重要的时刻来了,我们也飞一下代码

  一个简单的例子,请参照:http://www.cnblogs.com/madyina/p/4671708.html   其实呢,这位大哥,已经弄了一个,但是之前我出错的地方就是前面我提到的,API更新和 SDK Manager这里,其他的可以参照这位大哥写的。这里,我就把我用到的控件和一些写法,和大家分享一下。

  在装逼之前,我先整理一下,整个的Android文件目录。

    

目录结构如图:

  1、Properties这里指的项目的属性,其中 AndroidManifest.xml 在java里面是一个很重要的注册文件,但是在这里具体怎么用,请原谅,我还没有搞清楚。至于AssemblyInfo.cs这个文件我就不说了。

  2、Assets这个文件夹,目前我也没有明白,但是我感觉他是一个解释性的文件夹,可以不理睬,包括里面的文档。

  3、Resources这个文件夹是相当的重要呀,基本上程序里面所有的东西都是从这里出去的。

    (1)drawable 资源文件夹,相信大家都看到后缀名了,类似的资源文件都可以放在这里。

    (2)layout 视图文件夹,我们能看到的,可以给我们视觉效果的,都放在这里。如图:

    这是Main.xml

    (3)values 自定义xml文件的文件夹,存的是一些常用的xml信息。

  4、Resource.Designer.cs这个文件就是所有的Resources文件都要在这个文件里面生成唯一的对应关系的。如图

  

  这是我们刚才看到的Drawable的文件夹,里面的每一张图片在这里都生成了唯一的对应常量。

  5、GettingStarted.Xamarin  这个呢,不知道怎么解释了,看图,一下就明白了

  

  6、MainActivity 这也是最重要的一个cs文件,因为我们的后台代码基本上都是从这里出去的。

  友情提示一下:添加资源文件的时候请注意xml文件,后面加上 “s” 虽然我不知道为什么这个玩意这个狗屎,但是,不加 “s” 我资源文件的id里面没有找到,也就是说用不了。

下面直接开始一些组件的用法

  一、TextView

<TextView
        android:text="@string/tv_phone"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textColor="@color/yellow"
        android:autoLink="phone"
        android:textSize="48px"
        android:id="@+id/tv_Color"
        android:gravity="center" />

 

   这是界面代码,我觉得这个解释起来没有必要了,我就说下其中的textColortext这两个的写法,首先,大家会看到这里有一个@,“@”在android里面,就是引用资源的意思。@string,引用string 。@string/tv_phone 这里的意思就是引用 strings.xml下面的 name=“tv_phone”的资源。在前面已经说到在 Resources的文件夹下面定义了Strings.xml文件。这里就是对于资源文件的一个运用。

  这就是我的Strings.xml文件,相信大家已经看明白了什么。

在这里,我提示一下大家的是就是autoLink这个属性,这个属性就是电话号码可以直接拨打的意思。

  二、ImageView

<ImageView
        android:src="@drawable/administrator"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/iv_change_url" />

   就是这个样子的,值得注意的是, 如果你是从工具栏里面直接拖过来的ImageView,那么请注意他的写法  android:src="@android:drawable/ic_menu_gallery"  这个东西前面的@android真心是个喳喳,就因为这个问题,我搞了小半个小时才找到毛病,直接用@drawable就可以了,但是因为一个android没有删除,各种生成不成功。

  三、EditText

<EditText
        android:id="@+id/et_txt"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:inputType="phone"
        android:hint="@string/et_txt" />

   对于这个组件,就解释一下 inputType="phone" 在这里的意思就是说当我们开始输入的时候默认的打开的是拨号键盘,因为phone都是数字么,意思就是打开的就是数字键盘,还有就是hint,可以叫做提示信息,就是html5里面的placeholder属性。

  四、Button

<Button
        android:id="@+id/btn_Call"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/btn_ChangColor" />

   对于Button,界面其实很这样了,但是,最主要的是我们的后台代码哦。

  五、后台代码

  前面已经说到了,后台代码都是在 MainActivity这个下面写的

  如图,看着像过滤器的这个东西

  

  Label就是你的apk的表头的名字,Icon就是对应的图标,接下来的看注释就可以了

  

  1、就以前面的btn_ChangColor为例,他的单击事件应该这么写

   

  编写对应的事件

  

  2、这里因为实现了View.IOnClickListener这个接口,接口是这么实现的

  

  此时我们亦可以用 SetOnClickListener 方法,那么,因为实现了接口么,就这么干,就OK。

   Button btn_change = FindViewById<Button>(Resource.Id.btn_Chang);
   btn_change.SetOnClickListener(this);

  

  3、还可以传统写法

  

  对应的事件

  

  4、在传统写法的基础上,之前的版本我没有试过,但是Visual Studio 2015确实可以这么写

  

  OK,就到这里,原谅我这个新手。有兴趣大家可以一起研究。

 

时间: 2024-08-02 02:36:27

Android(Xamarin)之旅(一)的相关文章

我的Android进阶之旅------&amp;gt;解决Jackson等第三方转换Json的开发包在开启混淆后转换的实体类数据都是null的bug

1.错误描述 今天测试人员提了一个bug,说使用我们的app出现了闪退的bug,后来通过debug断点调试,发现我们的app转换服务器发送过来的json数据后,都是为null.而之前已经提测快一个月的功能,一直都是稳定的,为什么现在会报java.lang.NullPointerException. 2.错误原因 原来我提测了一个月的APP版本一直没有打开混淆开关,而出问题的这个APP版本在即将要发布出去的时候打开了混淆开关.这样的话,我那些要通过转换json数据为bean实体类,因为没有在pro

我的Android进阶之旅------&amp;gt;Android疯狂连连看游戏的实现之状态数据模型(三)

对于游戏玩家而言,游戏界面上看到的"元素"千变万化:但是对于游戏开发者而言,游戏界面上的元素在底层都是一些数据,不同数据所绘制的图片有所差异而已.因此建立游戏的状态数据模型是实现游戏逻辑的重要步骤. 1.定义数据模型 连连看的界面是一个NxM的"网格",每个网格上显示一张图片.而这个网格只需要一个二维数组来定义即可,而每个网格上所显示的图片,对于底层数据模型来说,不同的图片对于着不同的数值即可. 对于上图所示的数据模型,只要让数值为0的网格上不绘制图片,其他数值的网

我的Android进阶之旅------&amp;gt;介绍一款集录制与剪辑为一体的屏幕GIF 动画制作工具 GifCam

由于上一篇文章:我的Android进阶之旅------>Android之动画之Frame Animation实例 中展示的是Frame动画效果,但是之前我是将图片截取下来,不好说明确切的动画过程,因此今天百度了一下gif动画的制作工具,找到了这款不错的软件GifCam.然后我使用该软件将动画制作成gif动画,然后更新了上一篇文章上传了新制作的gif动画,使博客的说明效果更佳. 该软件的界面如下所示: 该软件的操作步骤如下: 1.拖动 GifCam 标题栏,改变其位置,并调整 GifCam 窗口大

我的Android进阶之旅------&amp;gt;Android疯狂连连看游戏的实现之开发游戏界面(二)

连连看的游戏界面十分简单,大致可以分为两个区域: 游戏主界面区 控制按钮和数据显示区 1.开发界面布局 本程序使用一个RelativeLayout作为整体的界面布局元素,界面布局上面是一个自定义组件,下面是一个水平排列的LinearLayout. 下面是本程序的布局文件:/res/layout/main.xml <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android=

我的Android进阶之旅------&amp;gt;Android疯狂连连看游戏的实现之加载界面图片和实现游戏Activity(四)

正如在<我的Android进阶之旅------>Android疯狂连连看游戏的实现之状态数据模型(三)>一文中看到的,在AbstractBoard的代码中,当程序需要创建N个Piece对象时,程序会直接调用ImageUtil的getPlayImages()方法去获取图片,该方法会随机从res/drawable目录中取得N张图片. 下面是res/drawable目录视图: 为了让getPlayImages()方法能随机从res/drawable目录中取得N张图片,具体实现分为以下几步: 通

Android开发之旅:android架构

引言 通过前面两篇: Android 开发之旅:环境搭建及HelloWorld Android 开发之旅:HelloWorld项目的目录结构 我 们对android有了个大致的了解,知道如何搭建android的环境及简单地写一个HelloWorld程序,而且知道一个android项目包括哪 些文件夹和文件及相应的作用.本篇将站在顶级的高度--架构,来看android.我开篇就说了,这个系列适合0基础的人且我也是从0开始按照这个步骤来 学的,谈架构是不是有点螳臂挡车,自不量力呢?我觉得其实不然,如

Android开发之旅:应用程序基础及组件

--成功属于耐得住寂寞的人,接下来几篇将讲述Android应用程序的原理及术语,可能会比较枯燥.如果能够静下心来看,相信成功将属于你. 引言 为了后面的例子做准备,本篇及接下来几篇将介绍Android应用程序的原理及术语,这些也是作为一个Android的开发人员必须要了解,且深刻理解的东西.本篇的主题如下: 1.应用程序基础 2.应用程序组件 2.1.活动(Activities) 2.2.服务(Services) 2.3.广播接收者(Broadcast receivers) 2.4.内容提供者(

Android 开发之旅:短信的收发及在android模拟器之间实践(二)

引言 前面我们介绍都只是如何发送SMS消息,接下来我们介绍如何接收SMS消息,及另一种发短信的方式并增强为可以发生图片等,最后介绍一下emulator工具.本文的主要内容如下: 1~5见Android 开发之旅:短信的收发及在android模拟器之间实践(一) 6.温故知新之Intent 7.准备工作:SmsMessage类 8.SMS接收程序 9.另一种发送短信的方式:使用Intent 10.增强SMS为MMS 6.温故知新之Intent 此系列前面简单地接受过意图(Intent),这里再次简

我的Android进阶之旅------&amp;gt; Android为TextView组件中显示的文本添加背景色

通过上一篇文章 我的Android进阶之旅------> Android在TextView中显示图片方法 (地址:http://blog.csdn.net/ouyang_peng/article/details/46916963)      我们学会了在TextView中显示图片的方法,现在我们来学习如何为TextView组件中显示的文本添加背景色.要求完成的样子如图所示: 首先来学习使用BackgroundColorSpan对象设置文字背景色,代码如下: TextView textView=(

Android 开发之旅:view的几种布局方式及实践

引言 通过前面两篇: Android 开发之旅:又见Hello World! Android 开发之旅:深入分析布局文件&又是"Hello World!" 我们对Android应用程序运行原理及布局文件可谓有了比较深刻的认识和理解,并且用"Hello World!"程序来实践证明了.在继续深入Android开发之旅之前,有必要解决前两篇中没有介绍的遗留问题:View的几种布局显示方法,以后就不会在针对布局方面做过多的介绍.View的布局显示方式有下面几种:线