2011-09-22 47 views
4

我想弄清楚一件简单的事情:如何在Android视图中设置背景颜色。这里是活动中的代码:为什么我的Android背景颜色不可见?

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

    View v = new View(this); 

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

和我所得到的只是黑屏。

回答

25

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

  • A - 代表颜色透明度的Alpha值。值为FF意味着它根本不透明。值为00意味着颜色将不会显示,并且它后面的所有内容都将可见。 R - 红色值;

  • R - 红色值;不言自明

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

  • B-蓝值;不言自明

你在十六进制输入什么是0x016569C1其中有1(几乎不可见)的阿尔法值。放,0xFFFF0000,你会有一个红色的背景。

+0

你是对的。这是绝对愚蠢的错误。我刚刚输入了一个随机整数:) – givi

3

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

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

Colors for Android

您可以在XML使用

android:background = "#FF00000000" 

这将是黑色也成立。

+1

其实,在这种情况下,它将是一个看不见的黑色。如果视图背后有任何东西,它会显示出来。 '#FF000000'将会是黑色的,并阻止它后面的一切。 – DeeV

+0

好,我编辑。 – sealz

2

在ARGB中表示颜色的常用方法(有时是RGBA,但它只是一个命名),模型是十六进制。没有人使用十进制数字系统来数字化表示颜色。

让我们将黄色设置为按钮的文本:button.setTextColor(0xFFFFFF00);。现在,我们将黄色设置为删除按钮的文本。

ARGB由4个cannel组成。每个都有8位。第一个频道是阿尔法 - 0x FF FFFFFF;阿尔法是不透明度(在这种情况下,我们有它的最大值)。第二个是红色 - 0xFF FF FF00,依此类推;绿色和蓝色。

在带有十进制数字系统的ARGB颜色模型中创建颜色的最简单方法是使用Color类。

Color类有所有基本的静态函数和领域。 你的情况,你可以使用静态函数Color.rgb(int red, int, green, int blue)其中red, green, blue必须在0到255阿尔法位的范围由默认值设置为最大值 - 255或十六进制 - 0xFF的。

现在你知道如何表示十六进制数字,系统颜色会很容易地创建XML格式的资源文件的颜色。

相关问题