Kotlin 如何将颜色名称转换为rgb、rgba或十六进制

Kotlin 如何将颜色名称转换为rgb、rgba或十六进制,kotlin,Kotlin,非常简单的问题,我希望有一个简单的答案。我正在创建一个移动应用程序,它从网站接收css样式,并将颜色转换为有效的视图。setBackgroundColor() 例如,一旦我从样式中提取了一个子字符串sais“background color:red;”,我将如何将该颜色“red”转换为正确的rgb值,我相信它是view.setBackgroundColor(color.rgb(255,0,0))或正确的十六进制值,我认为应该是view.setBackgroundColor(Color.parse

非常简单的问题,我希望有一个简单的答案。我正在创建一个移动应用程序,它从网站接收css样式,并将颜色转换为有效的
视图。setBackgroundColor()


例如,一旦我从样式中提取了一个子字符串sais
“background color:red;”
,我将如何将该颜色
“red”
转换为正确的rgb值,我相信它是
view.setBackgroundColor(color.rgb(255,0,0))
或正确的十六进制值,我认为应该是
view.setBackgroundColor(Color.parseColor(“#ff0000”))
根据?

只需根据获得的值创建一个枚举。您可以创建一个枚举类,将从站点获取的值转换为实际的十六进制或基于rgb的值

when(服务器值){
“红色”->“#FFFFFF”
“绿色”->“#FFFABA”
}

这个片段只是给你一个想法

我给了乔科斯特的答案一票,因为这是一种方法。然而,最后我使用从中复制的xml将css颜色及其转换后的颜色哈希添加到我的colors.xml文件中,然后使用以下代码

val cssColor = context.resources.getIdentifier(namedColor.toLowerCase(
                Locale.ENGLISH), "color", context.packageName)

            if (cssColor != 0) {
                // outputting this if condition is met
                view.setTextColor( ContextCompat.getColor(context, cssColor) )
            }

据我所知,网络颜色有名称,所以做一个名称-值映射。虽然只有16种基本的网络颜色,但维基百科列出了数百种扩展颜色——太多了,无法轻松地放入代码中(例如
Map
initialiser或
when
语句)。  我建议将颜色名称和十六进制值放入文本文件,然后将其读入
地图
。  (现在没有时间写代码……剩下的只是练习:-)