在开发 Xamarin.Android 应用程序时,经常需要根据不同的客户来引入不同的资源。本文将介绍如何在 Xamarin.Android 解决方案中使用多个类库来管理不同客户的资源集合。将探讨如何使用 Visual Studio 的配置管理器创建新的构建配置,如何向 .csproj 文件中的 ProjectReference 元素添加条件属性,以及如何在视图中引用外部资源。
首先,打开 Visual Studio 并创建一个 Android 类库项目,与 Xamarin.Android 项目并行。在 Resources 子目录中填充特定于部署的图像、布局、尺寸等。为每个客户或部署场景重复此步骤。最终,将得到类似于图 1 所示的解决方案。
接下来,为每个部署场景创建构建配置。打开配置管理器,从构建配置下拉菜单中选择“配置管理器”。基于 Release 配置创建配置,但也可以轻松地为调试和发布创建一组配置。
然后,卸载并编辑 App 项目的 .csproj 文件,以包含条件项目引用。请注意每个 ProjectReference 中的 Condition 属性,以及它们如何与在步骤 2 中创建的构建配置名称相对应。
重新加载主项目,将其设置为启动项目,然后就可以开始了。注意:在切换构建配置时,需要执行清理或重建,否则新的资源不会被获取。
在可下载的示例中,放置了一个 ImageView,其源设置为名为 logo.png 的图像。在每个类库的 Resources/drawable 目录中都有一个 logo.png。背景颜色使用名为 main 的资源颜色定义。特定于部署的颜色放置在 ClientColors01.xml 和 ClientColors02.xml 中。
客户 1 的主视图背景为黑色,定义如下:
<color name="main">
#000
</color>
而客户 2 的背景为白色:
<color name="main">
#FFF
</color>
类似地,客户 1 的 logo 为暗色背景设计,而客户 2 的 logo 为浅色背景设计。明白了这个概念。请参见图 2。
在本文中,看到了如何使用多个类库项目来管理不同部署场景的不同资源集合。看到了如何使用配置管理器创建新的构建配置。查看了如何在 .csproj 文件中的 ProjectReference 元素添加条件属性。最后,看到了如何在视图中引用外部资源。