4

我试图弄清楚一件简单的事情:如何在 Android 视图中设置背景颜色。这是 Activity 中的代码:

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

    View v = new  View(this);

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

我得到的只是黑屏。

4

3 回答 3

24

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

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

  • R——红色值;不言自明

  • G——绿色值;不言自明

  • B - 蓝色值;不言自明

您以十六进制输入的是0x016569C1Alpha 值为 1(几乎不可见)的内容。放,0xFFFF0000你会有一个红色的背景。

于 2011-09-22T13:24:37.260 回答
3

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

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

安卓颜色

您还可以使用在 XML 中进行设置

android:background = "#FF00000000"

哪个是黑色的。

于 2011-09-22T13:27:10.300 回答
2

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

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

ARGB 由 4 个通道组成。每个都有 8 位。第一个通道是 alfa - 0x FFFFFFFF;alfa 是不透明度级别(在这种情况下,我们有它的最大值)。第二个是红色 - 0xFF FFFF00,依此类推;分别是绿色和蓝色。

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

Color类具有所有基本的静态函数和字段。在您的情况下,您可以使用静态函数Color.rgb(int red, int, green, int blue),其中red, green, blue必须在 0 到 255 的范围内。默认情况下,Alfa 位设置为最大值 - 255 或十六进制 - 0xff。

现在您知道如何在十六进制数字系统中表示颜色,在 xml 资源文件中创建颜色将非常容易。

于 2011-11-27T20:22:28.030 回答