如何在代码中设置TextView的文本颜色?
在XML中,我们可以通过textColor
属性设置文本颜色,如android:textColor="#FF0000"
。 但是,我如何通过编码来改变它?
我尝试了这样的:
holder.text.setTextColor(R.color.Red);
holder
只是一个类, text
是TextView
类型。 红色是在字符串中设置的RGB值(#FF0000)。
但它显示出不同的颜色,而不是红色。 我们可以在setTextColor()中传递什么样的参数? 在文档中,它表示int
,但它是一个资源参考值还是其他任何东西?
你应该使用:
holder.text.setTextColor(Color.RED);
为了理智检查,我只是试了一下,因为我打开了一个项目,是的,它很好,红色; D
您可以使用Color
类中的各种函数来获得相同的效果。
Color.parseColor
(手动)(如LEX使用)
text.setTextColor(Color.parseColor("#FFFFFF"));
Color.rgb
和Color.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