如何根据口味自动更改绘图?

joe*_*joe 4 android android-productflavors android-build-flavors android-flavors

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

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

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

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

在此输入图像描述

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

ans*_*rod 6

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

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

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

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