【问题标题】:Android. Change the background color of a FrameLayout from code安卓。从代码更改 FrameLayout 的背景颜色
【发布时间】:2012-12-19 08:48:47
【问题描述】:

我正在尝试更改 FrameyLayout 的背景颜色。 颜色在变,但是变错了。

但是,如果我通过 XML 执行它,它就可以正常工作。

这是我的 res/values/colors.xml 代码

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="grey">#888888</color>
    <color name="white">#FFFFFF</color>
    <color name="red">#ffff3448</color>
    <color name="green">#ff408c3a</color>
</resources>

这是我在 XML 中进行更改后的样子

如果我尝试使用代码进行操作,就会发生这种情况

 FrameLayout frameLayoutBalance = (FrameLayout)view.findViewById(R.id.frameLayoutBalance);
 frameLayoutBalance.setBackgroundColor(R.color.green);

【问题讨论】:

标签: java android xml user-interface


【解决方案1】:

你不应该使用 frameLayoutBalance.setBackgroundColor(R.color.green);

setBackgroundColor 需要颜色(即 Chirag Raval 描述的其值)而不是颜色资源。

使用这个frameLayoutBalance.setBackgroundColor(getResources().getColor(R.color.green));

【讨论】:

    【解决方案2】:

    使用此代码 frameLayoutBalance.setBackgroundColor(Color.parseColor("#00aacc"));

    【讨论】:

    • 您好!非常感谢您的快速回复。即使您的代码正在运行并且可以用作解决方法,但恐怕它不能用作解决方案。最好不要硬核任何值,就好像它们改变了一样,我需要遍历所有代码并在任何地方手动更改它。
    • frameLayoutBalance.setBackgroundColor(getResources().getColor(R.color.red));
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-28
    • 1970-01-01
    • 2014-10-19
    • 2017-12-16
    • 2012-07-31
    相关资源
    最近更新 更多