我想使用一个颜色从一个六边形字符串,如“#FFFF0000”来(说)改变一个布局的背景颜色。 颜色。HSVToColor看起来像一个赢家,但它以float[]作为参数。
我离解决方案还有一步之遥吗?
我想使用一个颜色从一个六边形字符串,如“#FFFF0000”来(说)改变一个布局的背景颜色。 颜色。HSVToColor看起来像一个赢家,但它以float[]作为参数。
我离解决方案还有一步之遥吗?
当前回答
我已经创建了一个完整的答案:
/**
* Input: Hex Value of ARGB, eg: "#FFFF00FF", "#FF00FF", "#F0F"
* Output: Float Color Array with with red, green,
* blue and alpha (opacity) values,
* eg: floatArrayOf(0.63671875f, 0.76953125f, 0.22265625f, 1.0f)
*/
private fun getFloatArrayFromARGB(argb: String): FloatArray {
val colorBase: Int = if (argb.length == 4) {
val red = if (argb[1] == '0') 0 else 255
val green = if (argb[2] == '0') 0 else 255
val blue = if (argb[3] == '0') 0 else 255
Color.rgb(red, green, blue)
} else {
Color.parseColor(argb)
}
val red = Color.red(colorBase)
val green = Color.green(colorBase)
val blue = Color.blue(colorBase)
val alpha = Color.alpha(colorBase)
return floatArrayOf(
red / 255f,
green / 255f,
blue / 255f,
alpha / 255f
)
}
用法:
private val colorValue = getFloatArrayFromARGB("#F0F")
希望它能帮助到别人
其他回答
我已经创建了一个完整的答案:
/**
* Input: Hex Value of ARGB, eg: "#FFFF00FF", "#FF00FF", "#F0F"
* Output: Float Color Array with with red, green,
* blue and alpha (opacity) values,
* eg: floatArrayOf(0.63671875f, 0.76953125f, 0.22265625f, 1.0f)
*/
private fun getFloatArrayFromARGB(argb: String): FloatArray {
val colorBase: Int = if (argb.length == 4) {
val red = if (argb[1] == '0') 0 else 255
val green = if (argb[2] == '0') 0 else 255
val blue = if (argb[3] == '0') 0 else 255
Color.rgb(red, green, blue)
} else {
Color.parseColor(argb)
}
val red = Color.red(colorBase)
val green = Color.green(colorBase)
val blue = Color.blue(colorBase)
val alpha = Color.alpha(colorBase)
return floatArrayOf(
red / 255f,
green / 255f,
blue / 255f,
alpha / 255f
)
}
用法:
private val colorValue = getFloatArrayFromARGB("#F0F")
希望它能帮助到别人
试试这个
int colorInt = Color.parseColor("#FF00FFF0");
bg.setBackgroundColor(colorInt);
bg是你想要设置背景色的视图或布局。
It's
int color = Color.parseColor("colorstring");
我用这个,它很适合我设置任何我想要的颜色。
public static final int MY_COLOR = Color.rgb(255, 102, 153);
为每个红色,绿色和蓝色设置颜色0-255,然后在任何你想要使用的颜色的地方放置MY_COLOR而不是color。蓝色或彩色。红色或Color类提供的任何其他静态颜色。
只要做一个谷歌搜索颜色图表,你就可以找到一个使用0-255的正确RGB代码的图表。
试试这个:
vi.setBackgroundColor(Color.parseColor("#FFFF0000"));