以编程方式更改样式中的颜色值 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);
}
美好的一天,我有这样的风格:
<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);
}