2012-10-06 89 views
4

如何以编程方式为线性布局设置背景颜色?我尝试下面的代码,但不工作:如何以编程方式为线性布局设置背景颜色?

LinearLayout footer = new LinearLayout(activity); 
footer.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, 8)); 
footer.setBackgroundColor(Color.parseColor("##ffb5d6e1")); 
((LinearLayout)v).addView(footer); 
+3

你使用的颜色不正确。根据'Color.parseColor()'[文档](http://developer.android.com/reference/android/graphics/Color.html#parseColor%28java.lang.String%29),正确的格式是#RRGGBB或#AARRGGBB。尝试删除一个#。顺便说一句,因为API级别8,[FILL_PARENT](http://developer.android.com/reference/android/view/ViewGroup.LayoutParams.html#FILL_PARENT)已被弃用。请使用MATCH_PARENT。 – Kyriog

回答

0

基本上,这是你需要设置背景颜色

please follow the following steps 

实例化的线性布局的观点类似 的LinearLayout M =(LinearLayout中)findViewByid(什么R.id.line1); m.setBackground(R.color.back);

2

我觉得你的问题是你的线在这里:

footer.setBackgroundColor(Color.parseColor("##ffb5d6e1")); 

删除多余的“#”符号,以便它是:

footer.setBackgroundColor(Color.parseColor("#b5d6e1")); 

我也去掉了“FF”,因为你是基本上将不透明度设置为100%,如果您只使用六个字符长的十六进制值,则默认为不透明度。

1

您现在处于正确的轨道上,但却犯了一个非常小的错误。

您使用的颜色格式不正确。从Android的官方文档,

支持的格式有:#RRGGBB #AARRGGBB或以下 名称之一:“红”,“蓝”,“绿”,“黑”,“白”,“灰色','青色', '洋红色','黄色','浅灰色','深灰色','灰色','lightgrey', 'darkgrey','aqua','fuchsia','lime'栗色','海军','橄榄', '紫色','银','蓝绿色'。

所以,基本上你使用一个错误的色彩格式parseColor()方法。只要删除一个额外的#,你很好去。

footer.setBackgroundColor(Color.parseColor("#ffb5d6e1")); 

BONUS

为了简单起见,你也可以从你的颜色除去混浊成分。您使用“ff”将不透明度设置为100%,但这也是默认行为。所以你可以删除这个组件,并保持它简单,就像这样,

footer.setBackgroundColor(Color.parseColor("#b5d6e1")); 
相关问题