为什么我的Android背景颜色不可见?

时间:2011-09-22 13:19:44

标签: android android-view

我想弄清楚一件简单的事情:如何在Android视图中设置背景颜色。以下是活动中的代码:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    View v = new  View(this);

    setContentView(v);
    v.setBackgroundColor(23423425);
}

我得到的只是黑屏。

3 个答案:

答案 0 :(得分:25)

您设置的整数更容易表示为十六进制值。十六进制值为0xAARRGGBB

  • A - 表示Alpha值,它是颜色的透明度。值FF表示它根本不透明。值00表示颜色根本不会显示,后面的所有内容都将显示。

  • R - 红色值;不言自明的

  • G - 绿色值;不言自明的

  • B - 蓝色值;不言自明的

您在十六进制中输入的是0x016569C1,其Alpha值为1(几乎不可见)。 Put,0xFFFF0000,你将有一个红色背景。

答案 1 :(得分:3)

您传递的颜色不正确。 DeeV在我之前得到它但你需要使用十六进制值。

这是一个列出所有组合以便于访问的链接。

Colors for Android

您也可以使用

在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资源文件中创建颜色非常容易。