如何在代码中设置TextView的文本颜色?

613
在XML中,我们可以通过textColor属性设置文本颜色,例如android:textColor="#FF0000"。但是我该如何通过编码来更改它呢?
我尝试了以下内容:
holder.text.setTextColor(R.color.Red);

holder 是一个类,textTextView 类型。 红色是在字符串中设置的 RGB 值(#FF0000)。

但它显示的颜色与红色不同。 我们可以在 setTextColor() 中传递什么参数? 在文档中,它说是 int,但它是资源引用值还是其他任何东西?


关于在代码中调整用户界面的注意事项,请考虑在设计时查看用户界面的优点,将运行时更改最小化。 - AlikElzin-kilaka
40个回答

0
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) { 
    b.numberDay1.setTextColor(ContextCompat.getColor(requireContext(), R.color.secondary_100))
} else {                
    b.numberDay1.setTextColor(resources.getColor(R.color.secondary_100))
}

0
TextView color= (TextView)findViewById(R.id.color);
text.setTextColor(Color.RED);

0
TextView textresult = (TextView)findViewById(R.id.textView1);
textresult.setTextColor(Color.GREEN);

0

您可以使用 textView.setTextColor(Color.BLACK) 来使用 Color 类中的任何内置颜色。

您还可以使用 textView.setTextColor(Color.parseColor(hexRGBvalue)) 来定义自定义颜色。


0

提供RGB值的方法:text.setTextColor(Color.rgb(200,0,0));
通过十六进制数解析颜色的方法: text.setTextColor(Color.parseColor("#FFFFFF"));


0

我知道有很多问题,现在回答可能有点晚了,但是只是为了帮助像我一样卡住的人:

如果你遇到“无法解析符号Color”的错误

你需要import android.graphics.Color,然后txt.setTextColor(Color.parseColor("#FFFFFF"))


0
同样地,我正在使用color.xml
<color name="white">#ffffff</color>
    <color name="black">#000000</color>   

设置TextView的背景色:

textView.setTextColor(R.color.white);

我之前得到的是不同的颜色,但当我使用下面的代码后,我得到了实际的颜色。

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

0
如果您正在使用适配器并且仍然想使用在资源中定义的颜色,可以尝试以下方法:
holder.text.setTextColor(holder.text.getContext().getResources().getColor(R.color.myRed));

0

这个方法在我的RecyclerView适配器中可行(编译API = 33):

@Override
public void onBindViewHolder(@NonNull MyAdapter.ViewHolder holder, int position) {
        super.onBindViewHolder(holder, position);
.
.
.

holder.view.myTextView.setTextColor(holder.itemView.getResources().getColor(R.color.green));
.
.
.
}

-1
尝试使用以下代码:
holder.text.setTextColor(Color.parseColor("F00"));

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接