设置背景颜色:Android
Posted
技术标签:
【中文标题】设置背景颜色:Android【英文标题】:set background color: Android 【发布时间】:2013-08-04 16:33:54 【问题描述】:如何设置我的 android 应用程序的背景颜色。当我尝试时:
LinearLayout li=(LinearLayout)findViewById(R.id.myLayout);
li.setBackgroundColor(Color.parseColor("#rrggbb"));
我的应用程序总是崩溃。有人可以帮帮我。谢谢
【问题讨论】:
为什么会崩溃? logcat 说什么?我相信这是由于其他原因,例如,您是否使用setContentView
方法为您的 Activity 设置了布局?
你真的使用Color.parseColor("#rrggbb")
吗?你应该在那里使用十六进制
【参考方案1】:
试试这个:
li.setBackgroundColor(android.R.color.red); //or which ever color do you want
编辑:发布 logcat 文件也会有所帮助。
【讨论】:
mainLayout.setBackgroundColor(getResources().getColor(android.R.color.black));【参考方案2】:Color.parseColor("#rrggbb")
您应该使用十六进制值 0 到 F 来表示 rr、gg 和 bb,而不是 #rrggbb
:
例如Color.parseColor("#000000")
或 Color.parseColor("#FFFFFF")
Source
来自文档:
public static int parseColor(String colorString):
解析颜色字符串,并返回对应的颜色整数。如果 无法解析字符串,抛出 IllegalArgumentException 异常。 支持的格式有:#RRGGBB #AARRGGBB 'red'、'blue'、'green'、 “黑色”、“白色”、“灰色”、“青色”、“洋红色”、“黄色”、“浅灰色”、 “深灰色”、“灰色”、“浅灰色”、“深灰色”、“浅绿色”、“紫红色”、 '石灰','栗色','海军','橄榄','紫色','银色','蓝绿色'
所以我相信,如果您使用 #rrggbb
,您的 logcat 中会出现 IllegalArgumentException
Source
替代方案:
Color mColor = new Color();
mColor.red(redvalue);
mColor.green(greenvalue);
mColor.blue(bluevalue);
li.setBackgroundColor(mColor);
Source
【讨论】:
【参考方案3】:这个问题很老了,但它也可以对其他人有所帮助。
试试这个:
li.setBackgroundColor(getResources().getColor(R.color.blue));
or
li.setBackgroundColor(getResources().getColor(android.R.color.red));
or
li.setBackgroundColor(Color.rgb(226, 11, 11));
or
li.setBackgroundColor(Color.RED)
【讨论】:
【参考方案4】:顺便说一句,在较新版本的 AS 上快速选择颜色的一个好技巧是简单地键入 #fff,然后使用代码一侧的颜色选择器选择您想要的颜色。比记住所有颜色的十六进制数更快更容易。例如:
android:background="#fff"
【讨论】:
OP 询问如何使用 Java 而非 XML 设置元素的背景颜色。【参考方案5】: int R = 111; //My be assigned dynamic value
int G = 111; //My be assigned dynamic value
int B = 111; //My be assigned dynamic value
getWindow().getDecorView().setBackgroundColor(Color.rgb(R, G, B));
【讨论】:
易于使用以更改完整的背景屏幕。 尽量不要只写代码作为答案,还要至少简要解释一下以上是关于设置背景颜色:Android的主要内容,如果未能解决你的问题,请参考以下文章