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

nom*_*ngo 2 android background-color argb

对于给定的TextView,如何获取Alpha,Red,Green和Blue值(0-255)?

我知道如何设置TextView.SetBackgroundColor(Color.argb(a_int,r_int,g_int,b_int));

但是如何获得?

非常感谢

cro*_*boy 9

用途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);
Run Code Online (Sandbox Code Playgroud)

官方彩色文档

Color类定义了创建和转换颜色int的方法.

颜色表示为打包的int,由4个字节组成:alpha,red,green,blue.

这些值未经过多次修改,这意味着任何透明度都只存储在alpha组件中,而不是存储在颜色组件中.

组件存储如下(alpha << 24)| (红色<< 16)| (绿色<< 8)| 蓝色.

每个组件的范围在0..255之间,0表示对该组件没有贡献,255表示100%贡献.

因此,opaque-black将是0xFF000000(100%不透明但没有红色,绿色或蓝色的贡献),而opaque-black将是0xFFFFFFFF

参考