我无法在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
我的主题是空白活动项目中使用的默认主题(来自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>
但这个值应该被我的应用主题价值所覆盖。
答案 0 :(得分:17)
答案 1 :(得分:1)
根据谷歌的最佳方式
title.setTextColor(Color.parseColor("#000000"));
title.setAlpha(0.54f);
当你想要设置其他颜色时,将alpha重设为1.0f
答案 2 :(得分:0)
请检查这个答案:
您可以保存旧颜色,然后使用它来恢复原始值。 这是一个例子:
ColorStateList oldColors = textView.getTextColors(); //save original colors textView.setTextColor(Color.RED); .... textView.setTextColor(oldColors);//restore original colors
但一般来说,默认
TextView
文字颜色是根据应用于Activity
的当前主题确定的。
来自:What is default color for text in textview?
希望有所帮助