小编典典

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

all

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

我试过类似的东西:

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

Where holderis just a class and textis type TextView。红色是在字符串中设置的 RGB 值
(#FF0000)。

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


阅读 123

收藏
2022-03-07

共1个答案

小编典典

你应该使用:

holder.text.setTextColor(Color.RED);

当然,您可以使用Color类中的各种函数来获得相同的效果。

  • Color.parseColor (手动)(如 LEX 使用)

    text.setTextColor(Color.parseColor("#FFFFFF"));
    
  • Color.rgbColor.argb( Manual rgb ) ( Manual argb ) (就像 Ganapathy 使用的)

    holder.text.setTextColor(Color.rgb(200,0,0));
    

    holder.text.setTextColor(Color.argb(0,200,0,0));

  • 当然,如果你想在一个XML文件中定义你的颜色,你可以这样做:

    <color name="errorColor">#f00</color>
    

因为该getColor()函数已弃用1,所以您需要像这样使用它:

    ContextCompat.getColor(context, R.color.your_color);
  • 您还可以插入普通的 HEX,如下所示:
    myTextView.setTextColor(0xAARRGGBB);
    

首先是 alpha 通道,然后是颜色值。

当然,请查看完整的手册, 公共类 Color extends
Object


1此代码也曾在这里:

textView.setTextColor(getResources().getColor(R.color.errorColor));

此方法现在在 Android M 中已弃用。但是,您可以从支持库中的contextCompat使用它,如示例所示。

2022-03-07