对于给定的TextView,如何获得Alpha, Red, Green和Blue值(0-255)?
我知道如何设置TextView.SetBackgroundColor(颜色。Argb (a_int, r_int, g_int, b_int));
但是怎么得到呢?
Thanks to lot
使用ColorDrawable
:
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,红色,绿色,蓝色。
这些值是未预乘的,这意味着任何透明度都只存储在alpha组件中,而不是在color组件中。
组件的存储方式如下(alpha <<24) |(红<<16) |(绿色<<8) |蓝色
每个组件的取值范围是0..255, 0表示该组件没有贡献,255表示100%贡献。
因此,不透明黑色将是0xFF000000(100%不透明,但没有红、绿或蓝的贡献),不透明白色将是0 xffffffff