2011-06-24 69 views

回答

59

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

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

但一般默认TextView文本颜色从应用到您的Activity当前的主题。

+0

工作非常适合我,谢谢! –

+0

最正确的解决方案。保留文本颜色状态(禁用等) – dasar

+0

从我的观察来看,由主题定义的文本颜色不会由代码中动态添加的TextView继承。它总是以白色显示,无论黑暗/光明的主题。 – shiouming

0

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

+5

没有默认的颜色,只是每个android发行版都可以覆盖它们 – for3st

+0

@for3st你知道他们确实改变了它吗? –

1

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

+9

哇硬编码的东西,你知道。这是所有Android设备上所有设备和所有可选主题的价值吗?!开玩笑,你知道... :) – Bondax

+1

因此,Android中的默认文本颜色是粉红色的?我认为它更符合#060001 http://developer.android.com/reference/android/R.color.html#primary_text_dark – for3st

33

有在android.R.color

int c = getResources().getColor(android.R.color.primary_text_dark); 
+3

它应该是'int c = ...'而不是'Color c = .. ' –

+4

从API级别23起,getResources()。getColor(int id)'现已被弃用(请参阅[link](https://developer.android.com/reference/android/content/res/Resources.html#)的getColor%28int%29))。你可以使用'getResources()。getColor(int id,Resources。主题主题)'或'ContextCompat.getColor(contex,android.R.color.primary_text_dark)' – InfectedPacket

11

定义了一些默认的颜色属性获取这些值:

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(); 
+0

这看起来像它会正确选择基于主题的颜色,并将更新,例如,如果应用程序处于夜间模式。 –

+0

若要获取当前主题的TypedArray,则不需要主题参数:TypedArray a = getTheme()。obtainStyledAttributes(attrs); – petrsyn

+0

如果主题实际上使用了textColorSecondary,则只会获得适当的颜色。由于可以在主题或样式中覆盖此值,因此这不是确定特定视图的默认文本颜色实际上的准确方式。 另请注意,个别视图现在可以为主题,所以应该使用与视图的上下文相关联的主题,而不是假设活动的主题对所有视图都有效。 –

4

有在Android使用,如果你不specifiy文本颜色主题默认值。在各种Android用户界面中可能会有不同的颜色(例如HTC Sense,Samsung TouchWiz等)。 Android有一个_dark_light主题,所以这些默认设置是不同的(但在两个香草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参考黑暗题材文本颜色为#060001和在光的主题是#060003因为API V1。 See the android style class here

37

其实颜色的TextView是:

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

#808080 
+1

这是默认选项卡指示符文本颜色。在许多情况下,它可能与默认文本颜色相同,但我不会依赖它。 – k2col

+2

非常接近,但这种颜色是不一样的。 – LukTar

相关问题