【问题标题】:Android - How to have second set of resources?Android - 如何拥有第二组资源?
【发布时间】:2015-08-27 12:39:12
【问题描述】:
我有一个应用程序必须为两个不同的客户打上烙印。应用程序设计、代码、用法和流程是相同的。目前,品牌化纯粹是改变 android 资源以使用不同的颜色和字体。他们也可能会使用不同的可绘制对象和布局。两个品牌也有一些相同的资源。
目前,我们只有两个不同的项目,它们的代码文件重复,但资源文件集不同。
是否可以让一个项目拥有所有资源(公共资源、品牌 1 资源和品牌 2 资源)并有一个编译时间标志来决定使用哪一组资源?
编辑:
我正在寻找类似于根据屏幕尺寸和密度拥有不同的布局和资源集的东西。
【问题讨论】:
标签:
android
projects-and-solutions
【解决方案1】:
使用 Android 工作室。
在 android studio 中,您将在项目中拥有 flavor 文件夹。
可以根据口味放资源。
示例:
Project-
flavor-
demo-
| src-
| res-
| drawable-
| ic_launcher.png
brand1-
| src-
| res-
| drawable-
| ic_launcher.png
brand2-
src-
res-
drawable-
ic_launcher.png
并像这样在你的 gradle 文件中指定它。
android{
....
productFlavors {
demo {
applicationId "com.example.app.demo"
versionName "1.0.3"
}
brand1 {
applicationId "com.example.app.brand1"
versionName "1.0"
}
brand2 {
applicationId "com.example.app.brand2"
versionName "1.4"
}
}
...}
您可以选择在android studio左侧的Build Variant。它会根据您选择的风格拾取资源。
请注意:Android Studio 很慢。您应该至少有 8GB 内存。
Read this documentaion
【解决方案2】:
您可以使用build variants 实现此目的。您只需为每个客户端创建两种风格,在适当的源集中更改需要更改的任何资源,然后选择您的风格并构建。
【解决方案3】:
看看this。我正在阅读它,关于如何提供替代资源,它也可能对您有所帮助。
谢谢,