如何在Android应用程序中设置所有文本的文本颜色?

我想为我的android应用程序定义一个默认的文本颜色。

我有一个基本的活动课,所有的活动都从它延伸,我认为这可能是一个很好的地方来定义颜色。

如果不是什么更好的解决scheme? 也许样式?

麻烦是这个,对我来说都是新鲜的,所以随时给我build议,并提供代码片段和解释。

这是我的基类看起来像。 你可以看到它很空

package com.ccslocal.mobile.quiz.jls; import android.app.Activity; import android.os.Bundle; public class BaseActivity extends Activity { //set up app preferences here } 

是的,你是对的,你可以使用风格。 或者,您可以使用TextView.getTextColors()。getDefaultColor()设置默认文本颜色。 其实我从来没有用过这个,但我想这可能会对你有所帮助。

风格

 <style name="TextColor"> <item name="android:textColor">#00FF00</item> </style> 

然后在布局文件中

 <TextView style="@style/TextColor" /> 

正如denis.solonenko的答案中提到的,正确的做法是修改你的主题。

在你定义主题的地方(在你的themes.xml或styles.xml文件中),你需要添加如下的东西:

 <style name="AppTheme" parent="@style/Theme.AppCompat.Light"> ... <item name="android:textColor">#FF00FF</item> ... </style> 

然后确保主题应用于清单中的“活动”或“应用程序”:

 <application ... android:theme="@style/AppTheme" .... > 

你也可以定义:

  • textColor – 任何给定视图的默认文本颜色
  • textColorPrimary – 启用的button和大文本视图的默认文本颜色
  • textColorSecondary – “中小文字视图”的默认文本颜色
  • textColorTertiary – ?

(来源TextColor与TextColorPrimary与TextColorSecondary )

请记住,许多其他事情可能会覆盖这些预定义的颜色,例如在不同的资源文件夹中应用的样式或定义。

请参阅此处查看主题项目的完整列表: https : //android.googlesource.com/platform/frameworks/base/+/refs/heads/master/core/res/res/values/themes.xml

为您的应用程序创build自定义主题。 看看官方指南 。

像这样在你的res/values/colors.xml设置你的默认颜色

 <color name="defaultTextColor">#ffffff</color> 

所以这个颜色给你的所有文字

 android:textColor="@color/defaultTextColor" 

要么

 textView.setTextColor(R.color.defaultTextColor);