101

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

4

14 回答 14

124

实际上颜色 TextView 是:

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

或者

#808080
于 2015-10-16T18:11:18.727 回答
97

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

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

但通常默认TextView文本颜色由应用于您的Activity.

于 2011-06-24T13:51:12.640 回答
41

定义了一些默认颜色android.R.color

int c = getResources().getColor(android.R.color.primary_text_dark);
于 2012-05-02T22:49:02.277 回答
17

从属性中获取这些值:

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();
于 2012-11-20T14:52:08.697 回答
9

我知道它很旧,但根据我自己的带有默认浅色主题的主题编辑器,默认

textPrimaryColor = #000000

textColorPrimaryDark = #757575
于 2018-10-06T12:47:59.737 回答
8

如果您不指定文本颜色,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"

作为香草 Android 中的参考,深色主题文本颜色是自 API v1 以来#060001的浅色主题。在此处查看 android 样式类#060003

于 2015-02-13T17:19:56.460 回答
4

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

于 2020-02-14T01:39:31.447 回答
3

在所有情况下可能都不可能,但为什么不简单地使用存在于同一个 Activity 中并带有您正在寻找的颜色的不同随机 TextView 的值呢?

txtOk.setTextColor(txtSomeOtherText.getCurrentTextColor());
于 2020-03-05T09:12:28.493 回答
0

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

于 2011-06-24T13:52:40.610 回答
0

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

于 2011-06-24T13:53:23.677 回答
0

嘿,你可以试试这个

ColorStateList colorStateList = textView.getTextColors();
String hexColor = String.format("#%06X", (0xFFFFFF & colorStateList.getDefaultColor()));
于 2019-01-31T09:34:36.040 回答
0

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

于 2019-04-21T04:46:18.737 回答
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)
}
于 2020-07-30T12:26:03.103 回答
0

在应用程序的主题中定义了一些默认颜色。下面是可用于以编程方式获取当前默认颜色的代码片段。

protected int getDefaultTextColor(){
        TextView textView = new TextView(getContext());
        return textView.getCurrentTextColor();
    }
于 2021-11-18T06:33:19.723 回答