我需要将十六进制字符串值处理为浮动颜色。
真实颜色是(RGBA格式)
{ 0.63671875f, 0.76953125f, 0.22265625f, 1.0f }
为绿色,当0等于00且1为FF时。但是需要将颜色转换为0-255十进制来计算从0到255的%并设置浮点值。
如何通过示例#AABBCCFF
转换为浮点数组?
当parsecolor我有整数值时:
Color.parseColor("#AABBCCFF");
但是如何将整数转换为float中的每种颜色?红绿蓝和alpa
答案 0 :(得分:3)
我想解决方案:
private float[] getFloatArrayFromARGB(String argb){
int color_base = Color.parseColor(argb);
int red = Color.red(color_base);
int green = Color.green(color_base);
int blue = Color.blue(color_base);
int alpha = Color.alpha(color_base);
return new float[]{
(red / 255f),
(green / 255f),
(blue / 255f),
(alpha / 255f)
};
}
使用:
String argb = "#FFFF0000";
float[] color = this.getFloatArrayFromARGB(argb);
GLES20.glUniform4fv(mColorHandle, 1, color, 0);
:D现在使用ARGB格式用OpenGL绘制3D对象