以编程方式更改样式中的颜色值 android

Change color value in style programmatically android

美好的一天,我有这样的风格:

<style name="ViewPagerTitleStrip">
    <item name="android:layout_width">fill_parent</item>
    <item name="android:layout_height">wrap_content</item>
    <item name="android:textColor">#FFFFFF</item>
    <item name="android:textSize">14sp</item>
</style>

我想在此方法中更改 textColor:

void setFontColor(){
    SharedPreferences mPref = this.getSharedPreferences(Constants.USER_SETTINGS_PREF, Context.MODE_PRIVATE);
    boolean colorPref = mPref.contains(Constants.USER_FONT_COLOR);
    if(colorPref){
        int color = mPref.getInt(Constants.USER_FONT_COLOR, -1);
        //Somewhere here
    }
}

我该如何实施?

您无法在运行时更改 XML 资源。

但是,您可以从 SharedPreferences 中获取颜色值并将其直接应用于视图。

例如,假设您的视图有一个 setTextColor() 方法:

if (colorPref) {
    int color = mPref.getInt(Constants.USER_FONT_COLOR, -1);
    titleStrip.setTextColor(color);
}