对于给定的 TextView,如何获取 Alpha、Red、Green 和 Blue 值(0-255)?
我知道如何设置 TextView.SetBackgroundColor(Color.argb(a_int, r_int, g_int, b_int));
但是如何获得?
非常感谢
对于给定的 TextView,如何获取 Alpha、Red、Green 和 Blue 值(0-255)?
我知道如何设置 TextView.SetBackgroundColor(Color.argb(a_int, r_int, g_int, b_int));
但是如何获得?
非常感谢
ColorDrawable cd = (ColorDrawable) textView.getBackground();
int color = cd.getColor();
int alpha = cd.getAlpha();
int red = Color.red(color);
int green = Color.green(color);
int blue = Color.blue(color);
Color 类定义了创建和转换颜色整数的方法。
颜色表示为压缩整数,由 4 个字节组成:alpha、red、green、blue。
这些值是未预乘的,这意味着任何透明度都仅存储在 alpha 组件中,而不是存储在颜色组件中。
组件存储如下 (alpha << 24) | (红色 << 16) | (绿色 << 8) | 蓝色的。
每个组件的范围在 0..255 之间,0 表示对该组件没有贡献,255 表示 100% 的贡献。
因此不透明黑色将为 0xFF000000(100% 不透明,但没有来自红色、绿色或蓝色的贡献),不透明白色将为 0xFFFFFFFF