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

我试过这样的方法:

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

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

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


当前回答

在文本视图中设置颜色有很多不同的方法。

Add color value in studio res->values->colors.xml as <color name="color_purple">#800080</color> Now set the color in xml or actvity class as text.setTextColor(getResources().getColor(R.color.color_purple) If you want to give color code directly use below Color.parseColor code textView.setTextColor(Color.parseColor("#ffffff")); You can also use RGB text.setTextColor(Color.rgb(200,0,0)); Use can also use direct hexcode for textView. You can also insert plain HEX, like so: text.setTextColor(0xAARRGGBB); You can also use argb with alpha values. text.setTextColor(Color.argb(0,200,0,0)); a for Alpha (Transparent) v. And if you're using the Compat library you can do something like this text.setTextColor(ContextCompat.getColor(context, R.color.color_purple));

其他回答

您也只能从XML文件执行此操作。

在values文件夹中创建一个color.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="textbody">#ffcc33</color>

</resources>

然后在任何XML文件中,你可以使用,

android:textColor="@color/textbody"

或者你可以在Java文件中使用这种颜色:

final TextView tvchange12 = (TextView) findViewById(R.id.textView2);
//Set color for textbody from color.xml file
tvchange1.setTextColor(getResources().getColor(R.color.textbody));

我这样做的一个TextView在一个ViewHolder为一个RecyclerView。我不太确定为什么,但它在ViewHolder初始化时对我不起作用。

public ViewHolder(View itemView) {
    super(itemView);
    textView = (TextView) itemView.findViewById(R.id.text_view);
    textView.setTextColor(context.getResources().getColor(R.color.myColor));
    // Other stuff
}

但是当我把它移到onBindViewHolder时,它工作得很好。

public void onBindViewHolder(ViewHolder holder, int position){
    // Other stuff
    holder.textView.setTextColor(context.getResources().getColor(R.color.myColor));
}

希望这能帮助到一些人。

text.setTextColor(getResource(). getcolor (R.color.black))在color.xml中创建黑色。

OR

text.setTextColor(Color.parseColor("#000000"))在这里输入所需的十六进制码

OR

你可以使用静态颜色字段

使用适配器,您可以使用以下代码设置文本颜色:

holder.text_view = (TextView) convertView.findViewById(R.id.text_view);
holder.text_view.setTextColor(Color.parseColor("#FF00FF"));

Use:

TextView tv = new TextView(this);
tv.setTextColor(Color.rgb(285,0,0));