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