有没有办法在Android Studio中为我的项目背景使用colorPrimary
这样的样式主题颜色而不是@color/"whateverColorYouWant"
我想在游戏中更改主题以及视图中所有内容的颜色。有没有一种方法可以为对象分配变量@styles/colorPrimary
?这将允许我更改@styles/colorPrimary
,从而导致分配有该颜色的所有对象更新。这将允许一次更改多个对象,而无需手动更改每个对象,而是更新一个变量。
最佳答案
如果您在主题中定义了colorPrimary,则可以通过?colorPrimary
以XML的方式访问它,就像使用@ color / whateverColor一样。问号(?)表示对主题属性的引用。但是,如果您使用的是预先存在的Android属性,则需要使用?android:colorPrimary
。您可以添加自己的属性,以这种方式在attrs.xml
文件中进行引用。如果您需要通过代码访问主题元素,则这是一种方法:
TypedValue value = new TypedValue();
boolean success = getContext().getTheme().resolveAttribute(android.R.attr.colorPrimary, value, true);
int color = value.data;