【问题标题】:Colour name to hex颜色名称为十六进制
【发布时间】:2018-08-29 16:19:51
【问题描述】:

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


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      解决方案:

      1) 参考this

      2) 参考this

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-04-12
        • 1970-01-01
        • 2016-05-11
        • 1970-01-01
        • 2011-12-09
        • 2015-04-12
        • 2011-01-28
        相关资源
        最近更新 更多