我在写上一篇博客:Xamarin.Android vs. Native Android - How you implement Java Listener in C#的时候有一些错误。那篇博客的内容是关于如果你在参考一个原生态安卓的项目,并且想把它转换为Xamarin.Android项目,有一些语言特性的转换需要了解。我主要是从事件处理的角度写的那篇博客。
那篇博客我还会继续留着,因为它的做法并没有问题,只不过不是最佳实践。大家可以对比阅读这篇来看一下更好的一个solution。
背景
最近我正在学习Xamarin官方文档生成的pdf文件,关于如何开发Xamarin.Android应用的。我读到了Downloadable Fonts这个topic,使用这个方案要比将字体打包进apk文件有更多的好处。
如果你想了解什么是安卓的Downloadable Fonts,你可以查看这个文档:Downloadable Fonts
在上面的链接中,你会看到Google有一个官方的sample来阐述这个功能的使用方式。
链接:android-DownloadableFonts
由于我在学习Xamarin.Android,所以我想直接去用Xamarin.Android实现一个一模一样的sample,作为一个练习。因为平时用Xamarin.Forms会更多,Xamarin.Android会用得相对比较少。
之后噩梦就发生了,我发现如果去参照Google的sample想直接翻译成Xamarin.Android基于C#的代码,还是非常困难的,尽管这两个语言的相似度非常高。
解救了我的是我找到了Xamarin官方出的一个Xamarin.Android的sample,做的事情和我想做的一模一样。
链接:Xamarin.Android DownloadableFonts Sample
我查看了它的代码,发现实现得非常完美。所以,你在这篇博客中会看到的是,我会用这两个项目中的一些实例来展示Java和C#的一些不同的特性,也是基于这些特性的不同,我们在开发Xamarin.Android的时候才需要做一些思路的转换。
阅读更多