2

我正在开发一个非常混乱的应用程序,并且是第一次使用口味。应用程序有 4,5 种风格,所有风格都具有相同的背景颜色、可绘制对象等。只有徽标不同。

现在我必须制作一种布局完全不同的新口味。背景颜色应该是黄色而不是灰色,可绘制图像应该是黑色而不是白色。问题是,我有 100 张不同的白色图像。有没有办法可以自动将它们更改为黑色?(设计师可以重绘它们或将它们变成黑色,我可以将它们放在那种风格的可绘制文件夹中)或者我必须以编程方式检查是否使用了新风格,然后在每个使用白色可绘制的小部件上调用 setDrawable(newBlackImage)?这似乎是一种非常复杂的方法,因为所有可绘制对象都是通过 XML 布局设置的。

他们一直在使用风味的方式是创建资源布尔文件,然后检查代码是否某个键的值为真/假然后隐藏/显示一些东西......所以我认为我应该用这个做类似的事情,或者不?

这是我的一种风格的项目结构:

在此处输入图像描述

如您所见,每种口味只有不同的启动器和登录屏幕图标。每个都有自己的数组、布尔值和字符串资源文件。但是它们都共享相同的布局资源和带有白色图标的可绘制对象。

4

1 回答 1

4

我认为你已经走对了。通过为 gradle 文件中的每组可绘制对象创建特定的风格,您只需为具有特定文件的风格创建一个可绘制文件夹。

例如,风味“黑色”将需要一个可绘制文件夹,其中将存储所有黑色背景图像。

为了使其正常工作,所有资源都必须存在于所有风格中,因此您无需更改代码的任何部分。

您可以在此处找到快速指南: https ://medium.com/@thiagolopessilva/the-handling-multiple-java-source-and-resources-using-flavors-on-gradle-18a4b581285b

于 2017-06-08T22:08:15.017 回答