textview中文本的默认颜色是什么?

时间:2011-06-24 13:39:10

标签: android colors textview default android-gui

我将颜色设置为红色,之后我想再次将颜色设置为默认颜色,但我不知道什么是默认颜色,有人知道吗?

13 个答案:

答案 0 :(得分:71)

您可以保存旧颜色,然后使用它来恢复原始值。这是一个例子:

ColorStateList oldColors =  textView.getTextColors(); //save original colors
textView.setTextColor(Color.RED);
....
textView.setTextColor(oldColors);//restore original colors

但一般来说,默认TextView文字颜色是根据应用于Activity的当前主题确定的。

答案 1 :(得分:70)

实际上TextView的颜色是:

android:textColor="@android:color/tab_indicator_text"

#808080

答案 2 :(得分:35)

android.R.color

中定义了一些默认颜色
int c = getResources().getColor(android.R.color.primary_text_dark);

答案 3 :(得分:13)

从属性中获取这些值:

int[] attrs = new int[] { android.R.attr.textColorSecondary };
TypedArray a = getTheme().obtainStyledAttributes(R.style.AppTheme, attrs);
DEFAULT_TEXT_COLOR = a.getColor(0, Color.RED);
a.recycle();

答案 4 :(得分:5)

如果您没有指定文字颜色,Android会使用主题中的默认值。在各种Android UI中可能是不同的颜色(例如HTC Sense,Samsung TouchWiz等)。 Android有一个_dark_light主题,所以这些默认值不同(但在vanilla android中它们几乎都是黑色)。不过,最好自己定义主要文本颜色,以便在整个设备中提供一致的样式。

在代码中:

getResources().getColor(android.R.color.primary_text_dark);
getResources().getColor(android.R.color.primary_text_light);

在xml中:

android:color="@android:color/primary_text_dark"
android:color="@android:color/primary_text_light"

作为vanilla Android中的参考,黑暗主题文字颜色为#060001,而自主题为v1后,它在光照主题中为#060003See the android style class here

答案 5 :(得分:2)

我在textview上使用了颜色选择器,并得到了#757575

答案 6 :(得分:2)

在所有情况下都可能无法实现,但是为什么不简单地使用存在于同一Activity中并带有所需颜色的随机TextView的值呢?

txtOk.setTextColor(txtSomeOtherText.getCurrentTextColor());

答案 7 :(得分:1)

我相信默认的颜色整数值是16711935(0x00FF00FF)。

答案 8 :(得分:1)

我知道它已经很旧了,但是根据我自己的主题编辑器(默认光源主题为默认

textPrimaryColor = #000000

textColorPrimaryDark = #757575

答案 9 :(得分:0)

没有默认颜色。这意味着每个设备都可以拥有自己的设备。

答案 10 :(得分:0)

  

嘿,你可以试试这个

ColorStateList colorStateList = textView.getTextColors();
String hexColor = String.format("#%06X", (0xFFFFFF & colorStateList.getDefaultColor()));

答案 11 :(得分:0)

我发现android:textColor="@android:color/secondary_text_dark"提供的默认TextView颜色比android:textColor="@android:color/tab_indicator_text"更接近结果。 我想您必须根据要使用的主题在secondary_text_dark / light之间切换

答案 12 :(得分:0)

在进行更改之前,可以使用TextView.setTag / getTag存储原始颜色。我建议在ids.xml中创建一个唯一的id资源,以区分其他标记。

在设置为其他颜色之前:

if (textView.getTag(R.id.txt_default_color) == null) {
    textView.setTag(R.id.txt_default_color, textView.currentTextColor)
}

回头看

textView.getTag(R.id.txt_default_color) as? Int then {
    textView.setTextColor(this)
}