我试图设置的背景颜色编程,但当我设置每一个我的颜色,背景是黑色,但任何颜色背景是白色的应用程序主题。
View someView = findViewById(R.id.screen); View root = someView.getRootView(); root.setBackgroundColor(color.white);
你能看到密码吗?
你可以用
root.setBackgroundColor(0xFFFFFFFF);
或者
root.setBackgroundColor(Color.parseColor("#ffffff"));
我不明白你的问题... 你说“当我设置每一种颜色时”是什么意思?试试这个(编辑: “ # fffff”在原来的答案改为“ # ffffff”
yourView.setBackgroundColor(Color.parseColor("#ffffff"));
您需要使用 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));
以前的答案现在已经过时了,你需要使用 ContextCompat.getColor来正确检索颜色:
ContextCompat.getColor
root.setBackgroundColor(ContextCompat.getColor(getActivity(), R.color.white));
如果您将颜色代码保存在 value 文件夹下的 Colors.xml 中,那么您应该调用以下内容:
root.setBackgroundColor(getResources().getColor(R.color.name));
name表示在 <color/>标记中声明。
name
<color/>
在我的情况下,它没有改变颜色,因为我是 在 xml 资源中设置颜色。
在删除设置颜色的行之后,它以编程方式完美地工作了
这是我在回收视图中做的一个例子
final Drawable drawable = ContextCompat.getDrawable(mContext, R.drawable.ic_icon).mutate(); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) { holder.image.setBackground(drawable); } else { holder.image.setBackgroundDrawable(drawable); }
这必须奏效:
必须使用 GetResources () . getColor (R.color. WHITE)获取颜色资源,必须将其添加到 Xml资源文件中
View someView = findViewById(R.id.screen); someView.setBackgroundColor(getResources().getColor(R.color.WHITE));
如果你只是想使用一些预定义的 Android 颜色,你可以使用 Color.COLOR(其中 COLOR是 BLACK,WHITE,RED,等等) :
Color.COLOR
COLOR
BLACK
WHITE
RED
myView.setBackgroundColor(Color.GREEN);
否则你可以按照别人的建议去做
myView.setBackgroundColor(ContextCompat.getColor(getActivity(), R.color.myCustomGreen));
我不推荐直接使用十六进制颜色。您应该将所有自定义颜色保存在 Xml中。