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

时间:2011-08-03 04:29:09

标签: android

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

我有一个基本活动类,所有活动都是从它扩展而来的,我认为这可能是定义颜色的好地方。

如果不是什么是更好的解决方案?也许风格?

麻烦就是这个,对我来说都是新的,所以请随时告诉我并提供代码片段和解释。

这是我的基类的样子。你可以看到它很空白

package com.ccslocal.mobile.quiz.jls;

import android.app.Activity;
import android.os.Bundle;

public class BaseActivity extends Activity {
    //set up app preferences here
}

5 个答案:

答案 0 :(得分:74)

正如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 - 已启用按钮和大文本视图的默认文本颜色
  • textColorSecondary - 中小文本视图的默认文本颜色
  • textColorTertiary - ?

(来源TextColor vs TextColorPrimary vs TextColorSecondary

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

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

答案 1 :(得分:18)

为您的应用创建自定义主题。看看official guide

答案 2 :(得分:14)

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

对于风格

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

然后在布局文件中

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

答案 3 :(得分:9)

res/values/colors.xml中设置您的默认颜色

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

所有文字的颜色都是

android:textColor="@color/defaultTextColor"

textView.setTextColor(R.color.defaultTextColor);

答案 4 :(得分:2)

  • 为TextView创建样式:

    <style name="TextViewTheme">
        <item name="android:textColor">@android:color/white</item>
    </style>
    
  • 以样式方式将其应用于App:

    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
        <item name="android:textViewStyle">@style/TextViewTheme</item>
    </style>
    
  • 并记得在AndroidManifest.xml中更改样式:

    <application
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        ...
    </application>