分类 Xamarin 中的文章

Xamarin开发中我所遇到Error错误的解决办法

Xamarin的坑还是不少的,有些问题可能会一而再,再而三地重复出现,为了避免下一次遇到同一个问题重复的查找,我将在开发中遭遇到的问题汇总在这里,既方便我自己查阅,也提供给别人做参考;以下给出的解决方案中一部分是解决思路,一部分是确实成功地解决了问题的方案(我将用斜体标出)。 1.……

阅读全文

Xamarin.iOS和Xamarin.Android中计算文本宽度的方法

Xamarin.iOS CoreGraphics.CGSize cGSize = new CoreGraphics.CGSize(1000, 1000); public double getDisplayLength(string str) { var s = new NSAttributedString(str); var size = s.GetBoundingRect(cGSize, NSStringDrawingOptions.UsesLineFragmentOrigin, null); return size.Width; } Xamarin.Android Paint paint = new Paint(); public double getDisplayLength(string str) { float[] widths = new float[str.Length]; paint.GetTextWidths(str, widths); float sum = 0; widths.ForEachWithIndex((o, index) => { sum += o; }); return sum; } 其中ForEachWithIndex是我自己写的一个扩展方法,方便遍历数组; public static void ForEachWithIndex<T>(this T[] array, Action<T, int> action) { for (int i = 0; i < array.Length; i++) { action(array[i], i); } }……

阅读全文

Xamarin.Android中的icon资源尺寸

在Xamarin.Android中,icon的相关资源应该放在mipmap文件夹中,其他的图片资源放在drawable文件夹中。现给出Xamarin.Android下各个mipmap文件夹的icon资源尺寸; mipmap文件夹 ic_launcher ic_launcher_round ic_launcher_foreground mipmap-mdpi 48*48 48*48 108*108 mipmap-hdpi 72*72 72*72 162*162 mipmap-xhdpi 96*96 96*96 216*216 mipmap-xxhdpi 144*144 144*144 324*324 mipmap-xxxhdpi 192*192 192*192 432*432……

阅读全文

Xamarin开发获取联系人信息的方法

在输入法开发中,需要获取通讯录的联系人姓名,然后将其编码导入词库中,本文就简单介绍一下两个平台上获取联系人信息的方法; Xamrin.Android平台 1.添加权限申明 在AndroidManifest.xml文件中间添加如下权限申明: <!-- 读取联系人权限,上传联系人需要用到此权限 --> <uses-permission android:name="android.permission.READ_CONTACTS"……

阅读全文

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

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

阅读全文

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.Form跨平台访问系统图片库

这篇文章主要介绍如何在Xamarin.Form实现跨平台的调用系统图片库。 由于系统图片库是一个平台相关性比较大的系统工具,在Xamarin.Form上没有现成的统一API可用,所以我们只能利用DependencyService 来自己实现一个对系统图片库的调用。 下面,我们就一步一步……

阅读全文

用DependencyService实现跨平台开发

Xamarin.Form目前是微软提供的一种跨平台的开发技术,可以让开发者在iOS、Android和Window Phone等平台上共享60%以上的代码,从而节省维护多个平台代码的精力。但是完全不跟特定平台的代码打交道也是不可能的,为此,Xamarin.Form提供了一个强大的Ap……

阅读全文

我为什么选择Xamarin

Xamarin是一项跨平台开发技术,之前是收费的,而且据说收费不菲,所以使用的人数比较少,在国内几乎无人问津。后来Xamarin被微软收购,现已免费开放,相信今后国内的使用人群会大幅地增长,一方面是因为免费的东西总是受人欢迎的,另一方面是Xamarin确实提供了一种比较强大的技术……

阅读全文