包含标签 Xamarin.Android 的文章

记在为Xamarin.Android项目接入Huawei HMS的检测更新接口时遇到的坑

事情是这样的,前期我将岁寒输入法上传到了华为应用市场,最近我进行版本更新时审核不过,原因如下: 审核要求我接入华为的检测更新接口,简单的说就是在用户进入应用时检测一下应用市场是否有更新的版本,如果有的话就提示用户。 接入一个接口而已,想来应该也不难,不料竟是一个大坑。 如果我所使用的是……

阅读全文

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

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

阅读全文

在输入法开发中解决Android P下导航栏出现黑条的问题,并介绍Xamarin.Android下的一个坑

自Android P发布以来,陆陆续续的有用户向我反映Android P下输入法存在导航栏变黑的问题,情况如下所示。 于是我抽时间研究了一下这个问题。 经过一番搜索,我在Simple Keyboard下找到了解决方案,其代码大致如下: private int mOriginalNavBarColor = 0; private int mOriginalNavBarFlags = 0; ...... private void setNavigationBarColor() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { ...... final Window window = getWindow().getWindow(); if (window……

阅读全文

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"……

阅读全文

解决Xamarin.Android绑定第三方库时类型丢失的问题(一)

现象 今天在做一个第三方库绑定时,遇到如下情况: ![](http://image.suihanime.com/解决Xamarin.Android绑定第三方库时类型丢失的问题(一)_00001.jpg) 摘取其中一段代码如下: /Users/huangboru/myfile/xamarin_workspace/version4/CrashEyeTestPlus/obj/Debug/generated/src/Com.Xsj.Crasheye.ActionError.cs(88,88): Error CS0234: The type or namespace name 'IInterfaceDataType' does not exist in the namespace 'Com.Xsj.Crasheye' (are you missing an assembly reference?) (CS0234) (CrashEyeTestPlus) 错误代码的意……

阅读全文

如何开发Android原生库并应用到Xamarin.Android

本文将向大家介绍如何使用Android Studio开发原生库,并将其应用到Xamarin.Android的方法步骤; 本文中我所使用的Android Studio版本和Visual Studio For Mac版本情况分别如下: 下述内容在以上两个版本的开发环境中是有效的。 Android Studio开发部分 首先,新建……

阅读全文

使用代码定义GridLayout的方法

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

阅读全文