我尝试以编程方式设置背景颜色,但是当我设置每种颜色时,背景为黑色,但任何颜色背景都是白色,就像应用程序主题一样。
View someView = findViewById(R.id.screen);
View root = someView.getRootView();
root.setBackgroundColor(color.white);
你能看到代码吗?
答案 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
(其中COLOR
为BLACK
,WHITE
,RED
,等):
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(...);
}