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

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

我尝试了这样的:

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

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

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


你应该使用:

holder.text.setTextColor(Color.RED);

为了理智检查,我只是试了一下,因为我打开了一个项目,是的,它很好,红色; D


您可以使用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);
    
  • 你也可以插入普通十六进制,如下所示:

    myTextView.setTextColor(0xAARRGGBB);
    

    你首先有一个alpha通道,然后是颜色值。

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


    1此代码过去也在这里:

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

    现在在Android M中不推荐使用此方法。但是,您可以使用支持库中的contextCompat,如现在所示。


    如果你仍然想在你的XML文件中指定你的颜色:

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

    然后在你的代码中用以下两种方法之一引用它:

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

    要么

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

    如果您是针对Android M进行编译,首先可能会更好,但是您传入的主题可以为null,所以对您来说可能更容易?

    如果你使用Compat库,你可以做这样的事情

    textView.setTextColor(ContextCompat.getColor(context, R.color.errorColor));
    

    另一个:

    TextView text = (TextView) findViewById(R.id.text);
    text.setTextColor(Color.parseColor("#FFFFFF"));
    
    链接地址: http://www.djcxy.com/p/15311.html

    上一篇: How to set the text color of TextView in code?

    下一篇: How to create an HTML button that acts like a link?