我将颜色设置为红色,之后我想再次将颜色设置为默认颜色,但我不知道什么是默认颜色,有人知道吗?
答案 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后,它在光照主题中为#060003
。 See 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)
}