0

我在我的应用程序中使用了一个 Android 颜色选择器,它返回一个 android 整数常量(-ve 值)。如何从整数常量中获取 r,g,b,a 浮点值,以便我可以将 r,g,b,a 浮点值传递给 opengl 以更新颜色。

谢谢

4

1 回答 1

0

给定一个在 Android 中表示颜色的整数myColor,您可以使用以下方法获取值(通常范围为 0-255,具体取决于您的颜色空间):

int alpha = Color.alpha(myColor);
int red = Color.red(myColor);
int green = Color.green(myColor);
int blue = Color.blue(myColor);

如果您使用的是 API 26+,那么您也可以将这些返回作为浮点数。例如:

float alpha = Color.alpha(myColor);
float red = Color.red(myColor);
float green = Color.green(myColor);
float blue = Color.blue(myColor);

如果您希望标准化这些值(典型的 Android 开发不需要,但 openGL 可能需要),只需除以255f或(如果使用非典型颜色空间)除以getMaxValue(int componentIndex),其中componentIndex是该组件的索引(例如蓝色)在其色彩空间定义中。

于 2017-11-22T21:53:18.727 回答