在XML中,我们可以通过textColor属性设置文本颜色,比如android:textColor="#FF0000"。但是我如何通过编码来改变它呢?

我试过这样的方法:

holder.text.setTextColor(R.color.Red);

其中holder只是一个类,文本类型为TextView。红色是字符串中设置的RGB值(#FF0000)。

但是它显示的不是红色而是另一种颜色。我们可以在setTextColor()中传递什么样的参数?在文档中,它说的是int,但它是资源引用值还是其他什么?


当前回答

我相信,如果你想指定一个颜色作为资源(在XML文件中),你必须提供它的ARGB值(不仅仅是RGB值)。

尝试将颜色值更改为#FFFF0000。它应该给你红色。

其他回答

为了设置一个TextView的颜色,TextView. settextcolor (R.color.YOURCOLOR)是不够的!

它必须像这样使用-

TextView myText = (TextView) findViewById(R.id.YoutTextViewID);

myText.setTextColor(getResources().getColor(R.color.YOURCOLOR);

OR

myText.setTextColor(Color.parseColor("#54D66A"));

如果你想给颜色代码直接使用

textView.setTextColor(Color.parseColor("#ffffff"));

或者如果你想给颜色代码从颜色文件夹然后使用

textView.setTextColor(R.color.white);
text1.setTextColor(Color.parseColor("#000000"));

我相信,如果你想指定一个颜色作为资源(在XML文件中),你必须提供它的ARGB值(不仅仅是RGB值)。

尝试将颜色值更改为#FFFF0000。它应该给你红色。

从API 23开始,getResources(). getcolor()已弃用。

用这个代替:

textView.setTextColor(ContextCompat.getColor(getApplicationContext(), R.color.color_black));