我正从API中检索足球数据,部分数据是“俱乐部颜色”。颜色以“colour1 / colour2 / colour3”等字符串排列,依此类推。我可以使用以下代码将此字符串拆分为单独的颜色
String[] splitClubColors = clubColors.split("/");
for(int i = 0; i < splitClubColors.length; i++) {
splitClubColors[i] = splitClubColors[i].trim().toLowerCase();
}
所以现在我将每种颜色作为单独的字符串,例如“红色”,“白色”和“黑色”。
我有两个不同的问题:
1)是否可以将颜色从其名称形式(例如“蓝色”)转换为在Android Studio中有用的形式(即其十六进制代码)。
2)并且可以在转换后使用这些颜色设置colorPrimary,colorPrimaryDark和colorAccent
是否可以将颜色从其名称形式(例如“蓝色”)转换为在Android Studio中有用的形式(即其十六进制代码)。
int color = getResources().getColor(getResources().getIdentifier("red", "color", getPackageName()));
注意:red是color.xml
文件中定义的颜色占位符
一旦它们被转换,是否可以使用这些颜色设置colorPrimary,colorPrimaryDark和colorAccent
不,你不能,虽然你可以在运行时改变一些窗口小部件的颜色
参考:
How to really programmatically change primary and accent color in Android Lollipop?