如何在程序中为线性布局设置背景颜色?

5
如何通过编程设置线性布局的背景颜色?我尝试了以下代码但不起作用:
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()文档,正确的格式是 #RRGGBB 或 #AARRGGBB。尝试删除一个#。顺便说一下,从API level 8开始,FILL_PARENT已被弃用,请使用MATCH_PARENT。 - Kyriog
4个回答

3

我认为你的问题在这一行代码中:

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

去掉多余的 '#' 符号,使其变为:

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

我还移除了 'ff',因为你实际上是将不透明度设置为100%,如果只使用六个字符长的十六进制值,则默认情况下会完成此操作。


2
您已经走在正确的方向上,但犯了一个非常小的错误。
您使用的颜色格式是错误的。根据Android官方文档,
支持的格式为:#RRGGBB #AARRGGBB或以下名称之一:“red”,“blue”,“green”,“black”,“white”,“gray”,“cyan”,“magenta”,“yellow”,“lightgray”,“darkgray”,“grey”,“lightgrey”,“darkgrey”,“aqua”,“fuchsia”,“lime”,“maroon”,“navy”,“olive”,“purple”,“silver”,“teal”。
因此,基本上您为parseColor()方法使用了错误的颜色格式。只需删除一个额外的#,就可以轻松解决问题。
footer.setBackgroundColor(Color.parseColor("#ffb5d6e1"));

奖励

为了简化,您也可以从您的颜色中删除不透明度组件。您使用“ff”将不透明度设置为100%,但这也是默认行为。因此,您可以只需删除此组件并保持简单,如下所示:

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

0

简单的代码

LinearLayout m=findViewById(R.id.l3);
l3.setBackgroundColor(Color.parseColor("#84C8A9"));

请在您的答案中添加更多细节。请查看https://stackoverflow.com/help/how-to-answer以开始。 - Rishabh Kumar

0

基本上这就是你需要设置背景颜色的方法

please follow the following steps

实例化线性布局的视图,例如 LinearLayout m = (LinearLayout) findViewByid(R.id.line1); m.setBackground(R.color.back);


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接