
使用Xamarin开发Android应用
程式可说是相当的方便,不仅支援在VisualStudio中使用拖曳的方式设计使用者介面,还整合如AVD及SDKManager等工具.废话不多说,开始我们在VisualStudio上的第1支Android程式吧~1.在VisualStudio中新增
专案,在专案范本中,请C#节点,你会发现专案范本会多出Android及iOS类型的专案范本,我们在这个范例中选择”AndroidApplication”,并在名称中输入"HelloDroid”(当然您可以改成任何您想要的名称)2.专案建立後,您会发现工具列中多出几个项目:说明如下(由左至右):n目标装置:可以选择将目前的专案部署到哪一个装置,预设的"PromptforDevice”则是会在开始除错/部署时,d出视窗供使用者选择.若有接上实体装置,也会出现在此选单中.n装置记录:可以挑选装置并显示目前装置的活动记录.n开启Android虚拟装置管理员(AVD),透过此管理员,您可以新增,开启或编辑Android
模拟器.AndroidSDK管理员:由於Android版本(APILevel)众多,您可以在这个管理介面,安装所需的SDK版本及元件。3.预设的专案中会内建一个Button控制项并写著"HelloWorld,ClickMe!”,开启专案下的Resources->Layout->Main.axml可以进行页面的设计。4.而此范例的主要程式码则是Activity1.cs,直接透过下图的注解来说明:看到这样的程式码,我想大家应该都不会感到陌生.笔者有一些学员跟我说,感觉跟开发WindowsForm应用程式好像~~Activity1.cs相当於MVC分层的Controller.透过SetContentView方法,告诉系统要载入哪一个页面.接著透过FindViewById方法取得画面上按钮的物件实体.接著便可以针对按钮的属性或方法撰写相关的程式码,或是处理按钮的事件.如上图所示,预设的范例是使用匿名方法,我们将它注解後,改用LambdaExpression来撰写.5.接著按下F5,便可以开始进行除错,若没有预先开启Android模拟器,则Runningdevices列表会是空的,这时可以点击下方的"Startemulatorimage”连结来启动模拟器.6.执行结果如下:是不是相当简单呢?接下来我们来开始iOS的HelloWorld.使用VisualStudio开发iOSHelloWorld!与开发Android不同,目前Xamarin尚未支援在VisualStudio中设计应用程式页面,但官方表示目前已在研发当中,并会在不久之後的版本提供此功能.因此目前iOS专案的UI设计必须透过MAC的InterfaceBuilder(XCode的一部份),或是直接在程式中宣告控制项的位置及大小,VisualStudio中的HelloWorldApplication便是使用此方法.在VisualStudio中新增专案,在专案范本中选择iOS下的iPhone,并在右边的范本中选择HelloWorldApplication,接著指定专案名称(此处为HelloIOS)2.第一次开启iOS专案时,Xamarin会提示使用者只有在商业版或更高的版本才能在VisualStudio中开发iOS专案.接著Xamarin便会自动启用试用版本的授权,启动完毕後,会提示使用者VisualStudio将会重新启动.若您MAC上的Xamarin授权尚未启动,将会看到系统提示,说明BuildServer(也就是MAC)尚未启用授权.此时按下Activate按钮可能没有作用,请依照下面的步骤,在MAC上启用Xamarin授权.3.由於Xamarin在MAC上预设是以免费版本开启.因此可以透过以下方法强制启用Xamarin试用授权.首先在MAC的Finder开启XamarinStudio新增一个专案,选择iPhone=>SingleViewApplication.专案建立後,点击功能表中的专案=>Profile–Mono此时会看到授权启用的画面.当完成启用後,我们就可以回到VisualStudio来指定我们的BuildHost.4.在VisualStudio的工具=>选项中,可以看到多出了一个Xamarin节点,点击Xamarin下的iOSSettings,在右边可以指定MacBuildHost.您可以直接输入MAC的电脑名称或IP位址,或按下Configure进行设定.在设定视窗中,Xamarin会搜寻同一网段中已安装并启用Xamarin的MAC机器.若状态显示为"Ready",请按下Connect进行连线.若状态不是"Ready”,可以按下Diagnose按钮进行连线诊断.如下图所示,若某一个或多个项目无法通过连线诊断,则会出现failed,您可以failed的项目了解失败的原因.5.请在组态管理中,将平台设定为iPhoneSimulator,预设为部署至实体机器,但这需要向Apple申请付费的开发者帐号.接著在工具列中,可以选择iOS模拟器的版本,右边绿色打勾的符号表示已与MACBuildHost的连线正常,若是反灰的状态,请按一下右边的图示重新与指定的BuildHost连线.6.开启专案中的MyViewConrtoller.cs档.在此范例中,同样是在画面中间放置一个Button控制项(在iOS中的类别名称为UIButton)并显示点击的次数.由於我们是在程式中产生控制项,因此有部份程式码是在宣告物件的布局属性,请参考下图中程式码的注解:接下来才是范例程式的重点,若您是在XCode中设计好UI,则可以取代上面的程式.如同先前Android的HelloWorld,在iOS中,按钮的点击事件不叫Click,而是TouchUpInside,因此我们透过此事件的处理,在使用者点击了按钮後,改变按钮的显示文字(使用UIButton的SetTitle方法).最後将Button控制项透过View.AddSubview方法加入到画面当中.1.TabbedPage中嵌入NavigationPage,NavigationPage中的Root的title是Actionbar的标题,NavigationPage的Title是Tab的标题
2.暂时写的ExtendedNavigationPage 中的样式由于bug原因,在和TabbedPage一起使用时不起作用。
3.在Android中自定义样式的话,还是在样式文件中定义
4.启动Activity上注解Label会改变应用的名称,只需要删除掉Label标签即可显示在项目属性中设置的应用名称。
5.9patch文件有问题,用android自带的工具即可。
6.像素转dp:Resolver.Resolve<IDevice>().Display.Width / (Resolver.Resolve<IDevice>().Display.Ydpi / 160)
7.Grid 默认行、列之间是有间距的 通过设置 RowSpacing="0"
8.Error 5 The 'ProductID' attribute is invalid - The value '75b13d4c-4f0c-4b78-9d7f-8d09b3d5d4d0' is invalid according to its datatype 'http://WPCommontypes:ST_Guid' - The Pattern constraint failed. THSFramework.WinPhone
打开WinPhone项目下Properties中的WMAppManifest.xml 在ProductID的值上用大括号括起来 如: ProductID="{75b13d4c-4f0c-4b78-9d7f-8d09b3d5d4d0}"
9.
设置Actionbar样式:
[csharp] view plaincopyprint?
var navigon = new NavigationPage(new WebViewPage())
navigon.BarBackgroundColor = Color.Teal
navigon.BarTextColor = Color.White
本文使用的环境是Windows 8 Visual Studio 2012.2
1.下载Xamarin
2.安装Xamarin
下载后运行EXE文件
之后经过一些必要的下一步
想要开发Android,Android肯定是要勾选了,IOS看心情
自己添加Android SDK路径
注意关闭已经打开的Visual Studio实例
之后就开始了各种安装和下载
10分钟过去。。。安装完成
3.配置Android SDK环境变量
注意这里的 *** 作,找到自己的Android-SDK的安装目录,添加一个环境变量
ANDROID_SDK_HOME=D:\Program Files
(x86)\adt-bundle-windows-x86_64-20130219\sdk
另外,还需要在Path中添加
%ANDROID_SDK_HOME%/tools%ANDROID_SDK_HOME%/platform-tools注意,是2条(如果已经打开了Visual
Studio那需要重起Visual Studio才能生效)
4.新建Android项目
打开Visual Studio,我们就能看到这些Android项目了,来,新建一个
新建的时候会跳出授权信息
如果想试用请点试用,或者输入一个License或使用Xamarin账号都可以
如果使用Xamarin账号会直接跳转到Xamarin做授权
授权后不要关闭页面要多等一会,然后VS会做提示,之后重启VS,授权成功,项目列表自然显示
点击Debug,出现选择模拟器界面,这里选择Start emulator image
之后创建一个新的emulator image
之后建立一个模拟器;或者注意到Device Definitions 标签下去用模板建立一个也OK;新建后点击Start
模拟器就运行起来就算是大功告成。
这时在选择设备中就可以选择相应设备
再经过一段时间的等待程序就已经可以运行了,我也也可以去测试默认的模板建立的点击的程序
评论列表(0条)