Android - 通过引用其他定义的颜色来定义颜色

时间:2013-03-27 03:27:21

标签: android xml colors android-resources

如果有一些方法可以通过引用已定义的另一种颜色来定义colors.xml中的颜色,我一次又一次地想知道。好吧,我试过了,的确,好像你可以使用@ color / XXX参考其他颜色。

例如,一个colors.xml看起来像:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    …
    <color name="primary_blue">#205081</color>
    <color name="action_bar_text">@color/primary_blue</color>
    …
</resources>

但我不希望其他人直接使用我的primary_blue定义 - 没有上下文制作蓝色的东西是没有意义的。我提出的最佳解决方案是使用primary_blue之类的“直接”颜色作为前缀,然后注释它们不应该直接使用。

有没有办法阻止使用这些直接颜色,同时仍允许我的colors.xml文件引用它们?我想也许风格或apklib可以帮助我。

1 个答案:

答案 0 :(得分:2)

在此处添加答案,以防将来有人遇到此问题。

创建Android库时,您可以mark resources as public。任何不在public.xml文件中的资源都被认为是私有的。

  

隐式隐藏属性不仅会阻止您的库用户体验内部库资源的代码完成建议,还可以在不破坏库的客户端的情况下重命名或删除私有资源。私有资源从代码完成和主题编辑器中过滤掉,当您尝试引用私有资源时,Lint会发出警告。