为什么我的 Android 背景颜色不可见?
我试图弄清楚一件简单的事情:如何在 Android 视图中设置背景颜色。这是活动中的代码:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
View v = new View(this);
setContentView(v);
v.setBackgroundColor(23423425);
}
我得到的只是黑屏。
I'm trying to figure out one simple thing: how to set a background color in Android view. Here is the code in an Activity:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
View v = new View(this);
setContentView(v);
v.setBackgroundColor(23423425);
}
and all I get is black screen.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您设置的整数更容易表示为十六进制值。十六进制值为
0xAARRGGBB
。A - 表示 Alpha 值,即颜色的透明度。值
FF
表示它根本不透明。值为00
表示颜色根本不会显示,而其后面的所有内容都将可见。R——红色值;不言自明
G - 绿色价值;不言自明
B - 蓝色值;不言自明
您以十六进制输入的内容是
0x016569C1
,其 Alpha 值为 1(几乎不可见)。输入0xFFFF0000
,您将获得红色背景。The integer you set is easier represented as a hex value. The hex values are
0xAARRGGBB
.A - represents the Alpha value which is how transparent the color is. A value of
FF
means it's not transparent at all. A value of00
means the color won't be shown at all and everything behind it will be visible.R - Red value; self-explanatory
G - Green value; self-explanatory
B - Blue value; self-explanatory
What you entered in hex is
0x016569C1
which has an Alpha values of 1 (barely visible). Put,0xFFFF0000
and you'll have a red background.您传递的颜色不正确。 DeeV 在我之前得到了它,但你需要使用十六进制值。
这是一个列出所有组合的链接,以便于访问。
Android 颜色
在 XML 中进行设置。
您还可以使用Which would be black
You are passing in the color incorrectly. DeeV got to it before me but you need to use a hex value.
Here is a link that lists all combinations for easy access.
Colors for Android
You can also set in the XML by using
Which would be black.
ARGB(有时是RGBA,但它只是一个命名)模型中表示颜色的常用方法是十六进制。没有人使用十进制数字系统来数字表示颜色。
让我们为按钮的文本设置黄色:
button.setTextColor(0xFFFFFF00);
。现在我们将按钮的文本设置为黄色。ARGB由4个通道组成。每个都有8位。第一个通道是 alfa - 0x
FF
FFFFFF; alfa 是不透明度级别(在这种情况下我们有它的最大值)。第二个是红色 - 0xFFFF
FF00,依此类推;分别为绿色和蓝色。在具有十进制数字系统的 ARGB 颜色模型中创建颜色的最简单方法是使用
Color
类。Color
类具有所有基本静态函数和字段。在您的情况下,您可以使用静态函数
Color.rgb(int red, int, green, int blue)
其中red, green, blue
必须在 0 到255. Alfa 位默认设置为 max - 255 或十六进制 - 0xff。现在您知道了如何在十六进制数字系统中表示颜色,在 xml 资源文件中创建颜色将非常容易。
Common way to represent color in ARGB(sometimes RGBA but it is just a naming) model is hexadecimal. No one uses decimal numeral system to represent color digitally.
let's set yellow color to button's text:
button.setTextColor(0xFFFFFF00);
. Now We set yellow to out button's text.ARGB consists of 4 cannel. each with 8-bit. first channel is alfa - 0x
FF
FFFFFF; alfa is opacity level(in this case we have max value of it). second is red - 0xFFFF
FF00, and so on; green and blue respectively.The easiest way to create color in ARGB color model with decimal numeral system is to use
Color
class.Color
class has all basic static functions and fields.In your case you can use static function
Color.rgb(int red, int, green, int blue)
wherered, green, blue
must be in the range of 0 to 255. Alfa bits by default is set to max - 255 or in hex - 0xff.Now you know how to represent color in hexadecimal numeric system it will be very easy to create color in xml resource file.