有没有办法,在Android Studio中使用样式主题颜色,如colorPrimary,为我的项目背景注入@color /" whateverColorYouWant"

时间:2016-06-21 21:47:10

标签: java android xml android-theme android-color

Android Studio中有没有办法使用colorPrimary等样式主题颜色作为我的项目背景而不是@color/"whateverColorYouWant"

我想在游戏中更改主题以及视图中所有内容的颜色。有没有办法可以为对象分配变量@styles/colorPrimary?这将允许我更改@styles/colorPrimary,导致分配此颜色的任何对象更新。这样可以一次更改多个对象,而无需手动更改每个对象,而是更新一个变量。

1 个答案:

答案 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;