颜色名称为十六进制

问题描述 投票:1回答:2

我正从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 colors
2个回答
2
投票

是否可以将颜色从其名称形式(例如“蓝色”)转换为在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?


0
投票

解:

1)参考this

2)参考this

© www.soinside.com 2019 - 2024. All rights reserved.