我想弄清楚一件简单的事情:如何在Android视图中设置背景颜色。以下是活动中的代码:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
View v = new View(this);
setContentView(v);
v.setBackgroundColor(23423425);
}
我得到的只是黑屏。
答案 0 :(得分:25)
您设置的整数更容易表示为十六进制值。十六进制值为0xAARRGGBB
。
A - 表示Alpha值,它是颜色的透明度。值FF
表示它根本不透明。值00
表示颜色根本不会显示,后面的所有内容都将显示。
R - 红色值;不言自明的
G - 绿色值;不言自明的
B - 蓝色值;不言自明的
您在十六进制中输入的是0x016569C1
,其Alpha值为1(几乎不可见)。 Put,0xFFFF0000
,你将有一个红色背景。
答案 1 :(得分:3)
您传递的颜色不正确。 DeeV在我之前得到它但你需要使用十六进制值。
这是一个列出所有组合以便于访问的链接。
您也可以使用
在XML中进行设置android:background = "#FF00000000"
哪个会是黑色的。
答案 2 :(得分:2)
在ARGB中表示颜色的常用方法(有时是RGBA,但它只是一个命名)模型是十六进制的。没有人使用十进制数字系统来数字地表示颜色。
让我们将黄色设置为按钮的文字:button.setTextColor(0xFFFFFF00);
。现在我们将黄色设置为按钮的文本。
ARGB由4个cannel组成。每个都有8位。第一个通道是alfa - 0x FF
FFFFFF; alfa是不透明度级别(在这种情况下,我们有最大值)。第二个是红色 - 0xFF FF
FF00,依此类推;分别是绿色和蓝色。
使用十进制数字系统在ARGB颜色模型中创建颜色的最简单方法是使用Color
类。
Color
类具有所有基本的静态函数和字段。
在您的情况下,您可以使用静态函数Color.rgb(int red, int, green, int blue)
,其中red, green, blue
必须在0到255的范围内。默认情况下,Alfa位设置为max - 255或hex - 0xff。
现在您知道如何在十六进制数字系统中表示颜色,在xml资源文件中创建颜色非常容易。