通过代码更改整个应用程序或活动的字体颜色(java)

通过代码更改整个应用程序或活动的字体颜色(java),java,android,fonts,Java,Android,Fonts,是否可以通过代码(java)更改整个应用程序或活动的字体颜色?我想从共享首选项中读取颜色,然后更改活动中的字体颜色。我已经做了背景,它的工作,但我不知道如何改变字体全局 public void usePreferences(){ SharedPreferences settings = getSharedPreferences(OptionListActivity.MY_PREFERENCES, MODE_WORLD_READABLE); String

是否可以通过代码(java)更改整个应用程序或活动的字体颜色?我想从共享首选项中读取颜色,然后更改活动中的字体颜色。我已经做了背景,它的工作,但我不知道如何改变字体全局

    public void usePreferences(){
        SharedPreferences settings = getSharedPreferences(OptionListActivity.MY_PREFERENCES, MODE_WORLD_READABLE);

        String backColorAsString = settings.getString(getResources().getString(R.string.background_color), "0");
        Log.i(getResources().getString(R.string.font_color), backColorAsString);
        int backColorRGB = 0;
        if (backColorAsString.equals("RED"))
            backColorRGB = Color.RED;
        else if (backColorAsString.equals("BLUE"))
            backColorRGB = Color.BLUE;
        else if (backColorAsString.equals("GREEN"))
            backColorRGB = Color.GREEN;

        findViewById(android.R.id.content).setBackgroundColor(backColorRGB);

//works great till here


String fontColorAsString = settings.getString(getResources().getString(R.string.font_color), "0");
        int fColorRGB = 0;
        if (fontColorAsString.equals("RED"))
            fColorRGB = Color.RED;
        else if (fontColorAsString.equals("BLUE"))
            fColorRGB = Color.BLUE;
        else if (fontColorAsString.equals("GREEN"))
            fColorRGB = Color.GREEN;

//WHAT TO DO NOW?   
    }
编辑:


第1部分

您可以创建自定义文本视图。要使文本颜色设置得最快,请在应用程序类中设置全局颜色。(非主要活动)

并在xml中使用它,如:

<your.package.name.ColorTextView
     //other stuff
/>
第二部分

按如下所示设置应用程序类,并将
usepreferences()
代码粘贴到其中

public class MyApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        // paste code and set color here
    }
}
最后,要运行此功能,您必须在应用程序标记的清单中声明它:

android:name="your.package.name.MyApplication"

看,这是文本视图。我的意思是改变整个应用程序的字体颜色。按钮,标签,一切。更进一步,如果我创建自己的类,我可以;我不能在xml中正确使用它……很抱歉,您也可以为按钮创建自定义版本,并在xml中声明它们。大多数情况下,您将使用文本视图,这应该不是什么大问题。好的,您很好。谢谢。是的,这很有帮助!剩下的唯一问题是,在阅读共享首选项之前,我不知道字体颜色,因此无法为按钮设置字体颜色。我需要先读一下,但当时按钮已经存在了。正如我在回答中所说的。设置一个应用程序类,在该类中,您将检查SharedReferences中的颜色,但如果该颜色为null或其他值,则可以设置默认颜色。
ColorTextView.setGlobalColor(yourColor);
public class MyApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        // paste code and set color here
    }
}
android:name="your.package.name.MyApplication"