android:如何获得背景颜色的ARGB值为给定的textview



对于给定的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

参考

最新更新