颜色名称为十六进制

时间:2018-08-29 16:19:51

标签: android colors

我正在从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

2 个答案:

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

解决方案:

1)参见this

2)参见this