在 XML 中,我们可以通过属性设置文本颜色textColor,比如android:textColor="#FF0000". 但是我如何通过编码来改变它?
textColor
android:textColor="#FF0000"
我试过类似的东西:
holder.text.setTextColor(R.color.Red);
Where holderis just a class and textis type TextView。红色是在字符串中设置的 RGB 值 (#FF0000)。
holder
text
TextView
但它显示不同的颜色而不是红色。我们可以在 setTextColor() 中传递什么样的参数?在文档中,它说int,但它是资源参考值还是其他什么?
int
你应该使用:
holder.text.setTextColor(Color.RED);
当然,您可以使用Color类中的各种函数来获得相同的效果。
Color
Color.parseColor (手动)(如 LEX 使用)
Color.parseColor
text.setTextColor(Color.parseColor("#FFFFFF"));
Color.rgb和Color.argb( Manual rgb ) ( Manual argb ) (就像 Ganapathy 使用的)
Color.rgb
Color.argb
holder.text.setTextColor(Color.rgb(200,0,0));
holder.text.setTextColor(Color.argb(0,200,0,0));
当然,如果你想在一个XML文件中定义你的颜色,你可以这样做:
XML
<color name="errorColor">#f00</color>
因为该getColor()函数已弃用1,所以您需要像这样使用它:
getColor()
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使用它,如示例所示。