以编程方式设置背景颜色

时间:2014-05-07 12:29:57

标签: android background-color

我尝试以编程方式设置背景颜色,但是当我设置每种颜色时,背景为黑色,但任何颜色背景都是白色,就像应用程序主题一样。

View someView = findViewById(R.id.screen);
View root = someView.getRootView();
root.setBackgroundColor(color.white);

你能看到代码吗?

8 个答案:

答案 0 :(得分:145)

我没有理解你的问题......当你设定我的每一种颜色时,你是什么意思"?试试这个(编辑:" #ffffff"原来的答案改为" #ffffff"

  yourView.setBackgroundColor(Color.parseColor("#ffffff"));

答案 1 :(得分:78)

您需要使用getResources()方法,尝试使用以下代码

View someView = findViewById(R.id.screen);
View root = someView.getRootView();
root.setBackgroundColor(getResources().getColor(color.white)); 

修改::

getResources.getColor()已弃用,请使用如下

 root.setBackgroundColor(ContextCompat.getColor(this, R.color.white)); 

答案 2 :(得分:35)

您可以使用

 root.setBackgroundColor(0xFFFFFFFF);

 root.setBackgroundColor(Color.parseColor("#ffffff"));

答案 3 :(得分:30)

以前的答案现已弃用,您需要使用ContextCompat.getColor正确检索颜色:

root.setBackgroundColor(ContextCompat.getColor(getActivity(), R.color.white));

答案 4 :(得分:10)

如果您只想使用某些预定义的Android颜色,可以使用Color.COLOR(其中COLORBLACKWHITERED,等):

myView.setBackgroundColor(Color.GREEN);

否则你可以像其他人建议的那样做

myView.setBackgroundColor(ContextCompat.getColor(getActivity(), R.color.myCustomGreen));

我不建议直接使用十六进制颜色。您应该将所有自定义颜色保留在 colors.xml

答案 5 :(得分:6)

这必须有效:

您必须使用 getResources()。getColor(R.color.WHITE)来获取颜色资源,您必须在 colors.xml 资源文件中添加颜色资源< / p>

View someView = findViewById(R.id.screen);

someView.setBackgroundColor(getResources().getColor(R.color.WHITE));

答案 6 :(得分:2)

如果您将颜色代码保存在values文件夹下的colors.xml中,那么您应该调用以下内容:

root.setBackgroundColor(getResources().getColor(R.color.name));

name表示您在<color/>代码中声明。

答案 7 :(得分:2)

在我的情况下,它没有改变颜色,因为我在我的xml资源中设置颜色

删除设置颜色的线条,以编程方式完美地工作

这是我在RecyclerView中所做的一个例子

function insertAll() {
    var rxResult = insertInDatabaseRx(someLongArray[0].data);

    for (var i = 1; i < someLongArray.length; i++) {
        rxResult = rxResult.forkJoin(
            insertInDatabaseRx(someLongArray[i].data),
            function (result1, result2) {
                return result1 + result2;
            });
    }

    rxResult.map(...);
}