非常简单的问题,我希望有一个简单的答案。我正在创建一个移动应用程序,从网站接收css样式,并将颜色转换为有效的view.setBackgroundColor()
。
例如,一旦我从保存为"background-color:red;"
的样式中提取了一个子字符串,我如何将该颜色的"red"
转换为正确的RGB值(我认为它应该是view.setBackgroundColor(Color.rgb(255,0,0))
)或正确的十六进制值(根据the W3schools color picker,我认为它应该是view.setBackgroundColor(Color.parseColor("#ff0000"))
发布于 2021-01-01 06:00:49
我给georkost的答案投了赞成票,因为这是一种方法。但是,最后我使用从This link复制的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) )
}
发布于 2020-12-16 17:38:10
只需从您获得的值创建一个枚举。您可以创建一个enum类,将从site获得的值转换为实际的十六进制或基于rgb的值。
when(serverValue) {
"red" -> "#FFFFFF"
"green" -> "#FFFABA"
}
这段代码只是给你一个概念。
https://stackoverflow.com/questions/65316348
复制相似问题