我正在从API检索足球数据,而这些数据的一部分是“俱乐部颜色”。颜色以字符串形式排列,例如“ colour1 / color2 / 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
答案 0 :(得分:2)
是否可以从名称形式转换颜色(例如“蓝色”) 转换为可在Android Studio中使用的表单(即其十六进制代码)。
int color = getResources().getColor(getResources().getIdentifier("red", "color", getPackageName()));
注意:红色是color.xml
文件中定义的颜色占位符
是否可以设置colorPrimary,colorPrimaryDark和 一旦将这些颜色转换后,就使用colorAccent
否,尽管可以在运行时更改某些窗口小部件的颜色,但是您不能
参考:
How to really programmatically change primary and accent color in Android Lollipop?
答案 1 :(得分:0)