これは、HEX から 0 と 1 の間の浮動小数点数である glClearColor() 形式に色を変換する私のソリューションです。
最初に色を RGB に変換し、次にその色を 0 から 1 にマッピングします。
/* re-map RGB colors so they can be used in OpenGL */
private float[] map(float[]rgb) {
/* RGB is from 0 to 255 */
/* THIS is from 0 to 1 (float) */
// 1 : 2 = x : 4 >>> 2
/*
*
* 240 : 255 = x : 1
*
* */
float[] result = new float[3];
result[0] = rgb[0] / 255;
result[1] = rgb[1] / 255;
result[2] = rgb[2] / 255;
return result;
}
public float[] hextoRGB(String hex) {
float[] rgbcolor = new float[3];
rgbcolor[0] = Integer.valueOf( hex.substring( 1, 3 ), 16 );
rgbcolor[1] = Integer.valueOf( hex.substring( 3, 5 ), 16 );
rgbcolor[2] = Integer.valueOf( hex.substring( 5, 7 ), 16 );
return map(rgbcolor);
}
使用法:
//0077AB is HEX color code
float[] values = hextoRGB("#0077AB");
GLES20.glClearColor(values[0], values[1], values[2], 1.0f);