包含标签 Xamarin 的文章

使用代码定义GridLayout的方法

网上关于GridLayout的使用方法基本上都是用的xml文件,但既然是要使用网格布局,那说明准备放入其中的子视图肯定不少,都用xml写太过繁琐,那么如果我们想要代码来描述,应该怎么办呢? 问题的关键就是要使用 GridLayout.Spec类。 下面我简单演示一下利用GridLayo……

阅读全文

Xamarin.Android中如何根据给定的文件名获取文件

这里我们通过C#的反射机制来实现这个功能,以获取Resource/drawable文件夹下的图片为例: public int getResourceByReflect(String imageName) { var drawable = typeof(Resource.Drawable); int r_id = 0; try { var field = drawable.GetField(imageName); r_id = (int)field.GetValue(field.Name); } catch (Exception e) { } return r_id; } 使用方法: var id = getResourceByReflect(iconItem.Name); if (id == 0) return; var picture = BitmapFactory.DecodeResource(Context.Resources, id); 需要指出的是,在原生技术中,也可以通过反射实现这个功能,但其反射的目标对象是J……

阅读全文

Xamarin.Android开发中一些不可不知的知识点

Xamarin.Android所提供的接口基本上是对原生接口的再封装,但Xamarin团队在封装时采用了C#风格,这会导致某些API的用法无法完全和原生方法对照起来。除此之外,由于Xamarin.Android并不是将C#直接翻译成JVM语言,而是引入了Mono运行时,通过ACW……

阅读全文

如何将PCL项目转换成.Net Standard项目

从Xamarin.Forms 2.4开始,我们可以基于.Net Standard 2.0来构建Xamarin.Form项目,而不必像之前那样通过PCL项目进行构建。让我们迁移的.Net Standard理由是,通过.Net Standard构建的项目可以获得更好的平台移植性,对于我而言,最直观的进步是不……

阅读全文

Xamarin.iOS出现Code signing failed问题如何处理

我最近遇到了一个奇怪的问题,项目可以编译,可以运行,但是就是在生成Archvie之后要对其进行sign and distribute时会报如下错误: 并且除此之外,没有其它信息; 我试过所有办法,比如重新生成证书、重建项目、重启IDE和电脑、甚至是移除项目中可疑的子项目的代码等等,但是都不管……

阅读全文

Xamarin.iOS报Reason: no suitable image found.如何处理

在一次项目调试中我遇到了如下问题: 错误信息为: Reason: no suitable image found. Did find: /Users/huangboru/Library/Developer/CoreSimulator/Devices/AD26D1B5-DEE9-4E27-949C-A442CBAB5A8B/data/Containers/Bundle/Application/04F80EC9-7D94-4150-9ADB-1E1BDA867E2D/ThreeDiretion.iOS.app/PlugIns/ThreeDiretionKeyBoard.appex/../../Frameworks/Mono.framework/Mono: required code signature missing for '/Users/huangboru/Library/Developer/CoreSimulator/Devices/AD26D1B5-DEE9-4E27-949C-A442CBAB5A8B/data/Containers/Bundle/Application/04F80EC9-7D94-4150-9ADB-1E1BDA867E2D/ThreeDiretion.iOS.app/PlugIns/ThreeDiretionKeyBoard.appex/../../Frameworks/Mono.framework/Mono' 解决办法: 打开项目的option->iOS Build ,在 “Additional mtouch arguments"中加入--mono:static 即可;……

阅读全文

如何将第三方库封装成Xamarin.iOS链接库

如果你使用的是原生的开发技术,那么你肯定是不需要阅读本文的。但是如果在你的技术栈中,Xamarin.iOS有其一席之地的话,花点时间看一看或者收藏一下本文以备日后查阅,你一定不会吃亏。因为无论是Xamarin官方所提供的文档,抑或是国内所能查找的资料(事实上,几乎找不到),要么已……

阅读全文

Xamarin.Android下启动邮件发送的方法

在Android的原生平台上,启动邮件发送的方法如下: Intent i = new Intent(Intent.ACTION_SENDTO, Uri.fromParts("mailto", "443570993@qq.com", null)); i.putExtra(Intent.EXTRA_SUBJECT, "致岁寒输入法作者"); i.putExtra(Intent.EXTRA_TEXT, "请写下您的建议或者遇到的问题..."); startActivity(Intent.createChooser(i, "反馈建议")); 在Xamarin.Android下,与上面对应的实现为: Intent i = new Intent(Intent.ActionSendto, Android.Net.Uri.FromParts("mailto", "443570993@qq.com", null));……

阅读全文

Xamarin下获得各平台应用所在文件夹路径的方法

Android: // <AppHome>/files string path = Environment.GetFolderPath(Environment.SpecialFolder.Personal); iOS: // <AppHome>/Documents string docFolder = Environment.GetFolderPath(Environment.SpecialFolder.Personal); // to meet Apple’s iCloud terms, content that is not generated by the user // should be placed in the /Library folder or a subdirectory inside it string libFolder = System.IO.Path.Combine(docFolder,"..", "Library"); WindowPhone: // <AppHome>\local string path = Windows.Storage.ApplicationData.Current.LocalFolder.Path;……

阅读全文

在Xamarin.iOS下对UIImage进行压缩的方法

最近发现某些皮肤在iOS版岁寒输入法下会出现莫名其妙崩溃的情况,经分析研究,发现是由于皮肤中的素材太大,导致加载时程序内存占用暴涨而崩溃(iOS下的输入法运行内存限制大约为40mb,一不小心就会爆)。解决方案是在加载图片时对图片做压缩处理。 虽然Xamarin.iOS基本上是对原生……

阅读全文