让我澄清一下这个问题。 我有这样的主题
<style name="DefaultTheme" parent="android:Theme.Holo.Light">
<item name="android:textViewStyle">@style/DefaultTextViewStyle</item>
</style>
,其中
<style name="DefaultTextViewStyle" parent="android:Widget.TextView">
<item name="android:textColor">?attrTextColor</item>
</style>
对于应用程序我使用DefaultTheme主题,我想从代码中动态更改attrTextColor的值(更改所有TextView的文本颜色)。我可以做吗?我怎么能这样做?
答案 0 :(得分:0)
对于简单的解释,您可以使用主题进行。
您必须定义属性
<attr name="color_menu" format="color"/>
<attr name="color_text_main" format="color"/>
定义主题颜色(此处为蓝色和绿色)
<style name="AppTheme_green" parent="DefaultTheme">
<item name="color_menu">@color/very_dark_green</item>
<item name="color_text_main">@color/very_dark_gray3</item>
</style>
<style name="AppTheme_blue" parent="DefaultTheme">
<item name="color_menu">@color/very_dark_blue</item>
<item name="color_text_main">@color/very_dark_gray1</item>
</style>
现在您当前的活动可以在AndroidManifest.xml
中拥有一个主题 <activity
android:theme="@style/AppTheme_green"
>
...
</activity>
但您可以在活动中动态更改
activity.setTheme(R.style.AppTheme_Blue);
我希望这可以帮到你