我有一个自定义Resources
类,其中一个可以设置颜色,它将覆盖res / values / colors中定义的颜色。每个活动都会覆盖getResources()
方法以返回我的自定义资源对象。如果我以编程方式接收颜色(在java中调用getResources().getColor(R.color.xxx)
),一切都按预期工作。问题出在xml-layout文件中。如果我在那里定义一种颜色(即使用textColor="@color/xxx"
),它将始终使用/res/values/colors.xml中的颜色而不是我的覆盖颜色。有没有办法改变这种行为,在从XML扩充时,我的自定义资源对象正在使用?
答案 0 :(得分:1)
在我无法找到AttributeSet
的实际实现后,我意识到,整个想法都是错误的。我想这是因为资源是预编译的,所以使用Resources
类的方式不同。解决方案是Build-System本身。在使用库时,资源的优先级低于使用它的应用程序。因此,使用我的库的应用程序可以通过在colors.xml中使用相同的名称定义自己的库来覆盖库资源。