如何获取Android TextView的默认文本颜色?

Bur*_*ich 4 android themes view colors textview

我无法在Android 23中获得TextView(可能还有其他视图)的默认灰色文本颜色.

我尝试使用此代码获取它:

TextView textview= (TextView) mActivity.findViewById(R.id.my_textview);

int colorFirstTry = title.getCurrentTextColor(); // black
int colorSecondTry = title.getTextColors().getDefaultColor(); // black
int colorthirdTry = ContextCompat.getColor(mActivity, android.R.color.primary_text_light); // black
Run Code Online (Sandbox Code Playgroud)

我的主题是空白活动项目中使用的默认主题(来自Theme.AppCompat.Light.DarkActionBar父级的AppTheme).颜色分别为蓝色,深蓝色和紫色,分别为colorPrimary,colorPrimaryDark和colorAccent.

当我浏览所有Theme.AppCompat.Light.DarkActionBar父项时,我发现一个类似的灰色值:

<style name="Base.V7.Theme.AppCompat.Light" parent="Platform.AppCompat.Light">   
    ...
    <item name="colorPrimaryDark">@color/primary_dark_material_light</item>
Run Code Online (Sandbox Code Playgroud)

但是这个值应该被我的应用主题价值所覆盖.

Aly*_*ler 18

正如Alex 在这里所说,你可以通过以下方式得到它:

android:textColor="@android:color/tab_indicator_text"
Run Code Online (Sandbox Code Playgroud)

要么

#808080
Run Code Online (Sandbox Code Playgroud)

它对我很有用!

  • 很棒!我以这种方式以编程方式使用它:`textView.setTextColor(getResources()。getColor(android.R.color.tab_indicator_text));` (2认同)

pio*_*543 3

请检查这个答案:

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

ColorStateList oldColors =    textView.getTextColors(); //save original colors
textView.setTextColor(Color.RED);
....
textView.setTextColor(oldColors);//restore original colors
Run Code Online (Sandbox Code Playgroud)

但一般来说,默认TextView文本颜色是根据应用于您的Activity.

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

希望有帮助