如何以编程方式将文本颜色设置为文本视图

Nob*_*oby 237 android background-color textview

如何以#bdbdbd编程方式将文本视图的文本颜色设置为?

use*_*305 593

使用,..

Color.parseColor("#bdbdbd");
Run Code Online (Sandbox Code Playgroud)

喜欢,

mTextView.setTextColor(Color.parseColor("#bdbdbd"));
Run Code Online (Sandbox Code Playgroud)

或者,如果您在资源color.xml文件中定义了颜色代码,则

(来自API> = 23)

mTextView.setTextColor(ContextCompat.getColor(context, R.color.<name_of_color>));
Run Code Online (Sandbox Code Playgroud)

(对于API <23)

mTextView.setTextColor(getResources().getColor(R.color.<name_of_color>));
Run Code Online (Sandbox Code Playgroud)

  • 为什么不``0xFFBDBDBD`? (5认同)
  • Color.parseColor("#FFBDBDBD")也可以. (5认同)

Ali*_*aka 221

很棒的答案.添加一个从Android资源xml加载颜色,但仍然以编程方式设置它:

textView.setTextColor(getResources().getColor(R.color.some_color));
Run Code Online (Sandbox Code Playgroud)

请注意,API 23 getResources().getColor()已弃用.改为使用:

textView.setTextColor(ContextCompat.getColor(context, R.color.some_color));
Run Code Online (Sandbox Code Playgroud)

其中所需的颜色在xml中定义为:

<resources>
  <color name="some_color">#bdbdbd</color>
</resources>
Run Code Online (Sandbox Code Playgroud)

更新:

此方法在API级别23中已弃用.请改用getColor(int,Theme).

检查一下.

  • 从API 23开始,不推荐使用get.Color().使用ContextCompat.getColor(context,R.color.color_name) (8认同)

Jav*_*ave 36

yourTextView.setTextColor(color);
Run Code Online (Sandbox Code Playgroud)

或者,在您的情况下: yourTextView.setTextColor(0xffbdbdbd);

  • 0xFFBDBDBD是整数的十六进制表示形式,其中不同部分代表alpha,红色,绿色和蓝色(0xAARRGGBB)的数量(0xff表示alpha完全为白色-即不透明)。“ #bdbdbd”是一个字符串,当传递给函数`parseColor`时,该字符串将解析为相同的整数。 (2认同)

Mar*_*era 21

TextView tt;
int color = Integer.parseInt("bdbdbd", 16)+0xFF000000;
tt.setTextColor(color);
Run Code Online (Sandbox Code Playgroud)

tt.setBackgroundColor(Integer.parseInt("d4d446", 16)+0xFF000000);
Run Code Online (Sandbox Code Playgroud)

tt.setBackgroundColor(Color.parseColor("#d4d446"));
Run Code Online (Sandbox Code Playgroud)

看到:

Java/Android String to Color转换