以编程方式设置背景颜色

use*_*646 120 android background-color

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

View someView = findViewById(R.id.screen);
View root = someView.getRootView();
root.setBackgroundColor(color.white);
Run Code Online (Sandbox Code Playgroud)

你能看到代码吗?

Moh*_*ULI 158

我不明白你的问题......"当我设置我的每一种颜色时"是什么意思?试试这个(编辑:原来的答案中的"#fffff"改为"#ffffff"

  yourView.setBackgroundColor(Color.parseColor("#ffffff"));
Run Code Online (Sandbox Code Playgroud)


Sai*_*ate 86

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

View someView = findViewById(R.id.screen);
View root = someView.getRootView();
root.setBackgroundColor(getResources().getColor(color.white)); 
Run Code Online (Sandbox Code Playgroud)

编辑::

不推荐使用getResources.getColor(),使用如下所示

 root.setBackgroundColor(ContextCompat.getColor(this, R.color.white)); 
Run Code Online (Sandbox Code Playgroud)

  • getResources().getColor()被**弃用** (6认同)

Piy*_*ush 35

您可以使用

 root.setBackgroundColor(0xFFFFFFFF);
Run Code Online (Sandbox Code Playgroud)

要么

 root.setBackgroundColor(Color.parseColor("#ffffff"));
Run Code Online (Sandbox Code Playgroud)


Yoa*_*uet 30

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

root.setBackgroundColor(ContextCompat.getColor(getActivity(), R.color.white));
Run Code Online (Sandbox Code Playgroud)

  • 在 kotlin root.setBackgroundColor(ContextCompat.getColor(activity?.applicationContext!!, R.color.white)); (2认同)

Sur*_*gch 12

如果你只是想使用一些预定义的Android颜色,你可以使用Color.COLOR(其中COLORBLACK,WHITE,RED等):

myView.setBackgroundColor(Color.GREEN);
Run Code Online (Sandbox Code Playgroud)

否则你可以按照别人的建议去做

myView.setBackgroundColor(ContextCompat.getColor(getActivity(), R.color.myCustomGreen));
Run Code Online (Sandbox Code Playgroud)

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


Hat*_*tim 6

这必须工作:

您必须使用getResources()。getColor(R.color.WHITE)来获取颜色资源,必须将其添加到colors.xml资源文件中

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

someView.setBackgroundColor(getResources().getColor(R.color.WHITE));
Run Code Online (Sandbox Code Playgroud)